Showing error 1554

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ntdrivers/floppy2_safe.i.cil.c
Line in file: 6175
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

    1extern char __VERIFIER_nondet_char(void);
    2extern int __VERIFIER_nondet_int(void);
    3extern long __VERIFIER_nondet_long(void);
    4extern void *__VERIFIER_nondet_pointer(void);
    5/* Generated by CIL v. 1.3.7 */
    6/* print_CIL_Input is true */
    7
    8#line 33 "C:/NTDDK/inc/stdio.h"
    9#pragma pack(push,8)
   10#line 63 "C:/NTDDK/inc/stdio.h"
   11typedef unsigned int size_t;
   12#line 70 "C:/NTDDK/inc/stdio.h"
   13typedef unsigned short wchar_t;
   14#line 432
   15#pragma pack(pop)
   16#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
   17#pragma pack(push,8)
   18#line 156
   19#pragma pack(pop)
   20#line 88 "C:/NTDDK/inc/basetsd.h"
   21typedef unsigned long ULONG_PTR;
   22#line 88 "C:/NTDDK/inc/basetsd.h"
   23typedef unsigned long *PULONG_PTR;
   24#line 288 "C:/NTDDK/inc/basetsd.h"
   25typedef ULONG_PTR SIZE_T;
   26#line 217 "C:/NTDDK/inc/ntdef.h"
   27typedef void *PVOID;
   28#line 266 "C:/NTDDK/inc/ntdef.h"
   29typedef char CHAR;
   30#line 267 "C:/NTDDK/inc/ntdef.h"
   31typedef short SHORT;
   32#line 268 "C:/NTDDK/inc/ntdef.h"
   33typedef long LONG;
   34#line 276 "C:/NTDDK/inc/ntdef.h"
   35typedef wchar_t WCHAR;
   36#line 286 "C:/NTDDK/inc/ntdef.h"
   37typedef WCHAR *PWSTR;
   38#line 288 "C:/NTDDK/inc/ntdef.h"
   39typedef WCHAR const   *PCWSTR;
   40#line 293 "C:/NTDDK/inc/ntdef.h"
   41typedef CHAR *PCHAR;
   42#line 350 "C:/NTDDK/inc/ntdef.h"
   43typedef LONG *PLONG;
   44#line 360 "C:/NTDDK/inc/ntdef.h"
   45typedef unsigned char UCHAR;
   46#line 361 "C:/NTDDK/inc/ntdef.h"
   47typedef unsigned short USHORT;
   48#line 362 "C:/NTDDK/inc/ntdef.h"
   49typedef unsigned long ULONG;
   50#line 369 "C:/NTDDK/inc/ntdef.h"
   51typedef UCHAR *PUCHAR;
   52#line 371 "C:/NTDDK/inc/ntdef.h"
   53typedef ULONG *PULONG;
   54#line 394 "C:/NTDDK/inc/ntdef.h"
   55typedef void *HANDLE;
   56#line 400 "C:/NTDDK/inc/ntdef.h"
   57typedef HANDLE *PHANDLE;
   58#line 478 "C:/NTDDK/inc/ntdef.h"
   59typedef char CCHAR;
   60#line 479 "C:/NTDDK/inc/ntdef.h"
   61typedef short CSHORT;
   62#line 492 "C:/NTDDK/inc/ntdef.h"
   63typedef ULONG LCID;
   64#line 508 "C:/NTDDK/inc/ntdef.h"
   65typedef LONG NTSTATUS;
   66#line 621 "C:/NTDDK/inc/ntdef.h"
   67typedef long long LONGLONG;
   68#line 622 "C:/NTDDK/inc/ntdef.h"
   69typedef unsigned long long ULONGLONG;
   70#line 649 "C:/NTDDK/inc/ntdef.h"
   71struct __anonstruct____missing_field_name_1 {
   72   ULONG LowPart ;
   73   LONG HighPart ;
   74};
   75#line 649 "C:/NTDDK/inc/ntdef.h"
   76struct __anonstruct_u_2 {
   77   ULONG LowPart ;
   78   LONG HighPart ;
   79};
   80#line 649 "C:/NTDDK/inc/ntdef.h"
   81union _LARGE_INTEGER {
   82   struct __anonstruct____missing_field_name_1 __annonCompField1 ;
   83   struct __anonstruct_u_2 u ;
   84   LONGLONG QuadPart ;
   85};
   86#line 649 "C:/NTDDK/inc/ntdef.h"
   87typedef union _LARGE_INTEGER LARGE_INTEGER;
   88#line 662 "C:/NTDDK/inc/ntdef.h"
   89typedef LARGE_INTEGER *PLARGE_INTEGER;
   90#line 668 "C:/NTDDK/inc/ntdef.h"
   91struct __anonstruct____missing_field_name_3 {
   92   ULONG LowPart ;
   93   ULONG HighPart ;
   94};
   95#line 668 "C:/NTDDK/inc/ntdef.h"
   96struct __anonstruct_u_4 {
   97   ULONG LowPart ;
   98   ULONG HighPart ;
   99};
  100#line 668 "C:/NTDDK/inc/ntdef.h"
  101union _ULARGE_INTEGER {
  102   struct __anonstruct____missing_field_name_3 __annonCompField2 ;
  103   struct __anonstruct_u_4 u ;
  104   ULONGLONG QuadPart ;
  105};
  106#line 668 "C:/NTDDK/inc/ntdef.h"
  107typedef union _ULARGE_INTEGER ULARGE_INTEGER;
  108#line 690 "C:/NTDDK/inc/ntdef.h"
  109struct _LUID {
  110   ULONG LowPart ;
  111   LONG HighPart ;
  112};
  113#line 690 "C:/NTDDK/inc/ntdef.h"
  114typedef struct _LUID LUID;
  115#line 707 "C:/NTDDK/inc/ntdef.h"
  116typedef LARGE_INTEGER PHYSICAL_ADDRESS;
  117#line 956
  118enum _EVENT_TYPE {
  119    NotificationEvent = 0,
  120    SynchronizationEvent = 1
  121} ;
  122#line 956 "C:/NTDDK/inc/ntdef.h"
  123typedef enum _EVENT_TYPE EVENT_TYPE;
  124#line 984 "C:/NTDDK/inc/ntdef.h"
  125typedef char const   *PCSZ;
  126#line 991 "C:/NTDDK/inc/ntdef.h"
  127struct _STRING {
  128   USHORT Length ;
  129   USHORT MaximumLength ;
  130   PCHAR Buffer ;
  131};
  132#line 991 "C:/NTDDK/inc/ntdef.h"
  133typedef struct _STRING STRING;
  134#line 999 "C:/NTDDK/inc/ntdef.h"
  135typedef STRING *PSTRING;
  136#line 1002 "C:/NTDDK/inc/ntdef.h"
  137typedef PSTRING PANSI_STRING;
  138#line 1027 "C:/NTDDK/inc/ntdef.h"
  139struct _UNICODE_STRING {
  140   USHORT Length ;
  141   USHORT MaximumLength ;
  142   PWSTR Buffer ;
  143};
  144#line 1027 "C:/NTDDK/inc/ntdef.h"
  145typedef struct _UNICODE_STRING UNICODE_STRING;
  146#line 1036 "C:/NTDDK/inc/ntdef.h"
  147typedef UNICODE_STRING *PUNICODE_STRING;
  148#line 1046 "C:/NTDDK/inc/ntdef.h"
  149typedef UCHAR BOOLEAN;
  150#line 1057 "C:/NTDDK/inc/ntdef.h"
  151struct _LIST_ENTRY {
  152   struct _LIST_ENTRY *Flink ;
  153   struct _LIST_ENTRY *Blink ;
  154};
  155#line 1057 "C:/NTDDK/inc/ntdef.h"
  156typedef struct _LIST_ENTRY LIST_ENTRY;
  157#line 1057 "C:/NTDDK/inc/ntdef.h"
  158typedef struct _LIST_ENTRY *PLIST_ENTRY;
  159#line 1067 "C:/NTDDK/inc/ntdef.h"
  160struct _SINGLE_LIST_ENTRY {
  161   struct _SINGLE_LIST_ENTRY *Next ;
  162};
  163#line 1067 "C:/NTDDK/inc/ntdef.h"
  164typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;
  165#line 1067 "C:/NTDDK/inc/ntdef.h"
  166typedef struct _SINGLE_LIST_ENTRY *PSINGLE_LIST_ENTRY;
  167#line 1078 "C:/NTDDK/inc/ntdef.h"
  168struct LIST_ENTRY32 {
  169   ULONG Flink ;
  170   ULONG Blink ;
  171};
  172#line 1078 "C:/NTDDK/inc/ntdef.h"
  173typedef struct LIST_ENTRY32 LIST_ENTRY32;
  174#line 1082 "C:/NTDDK/inc/ntdef.h"
  175typedef LIST_ENTRY32 *PLIST_ENTRY32;
  176#line 1084 "C:/NTDDK/inc/ntdef.h"
  177struct LIST_ENTRY64 {
  178   ULONGLONG Flink ;
  179   ULONGLONG Blink ;
  180};
  181#line 1084 "C:/NTDDK/inc/ntdef.h"
  182typedef struct LIST_ENTRY64 LIST_ENTRY64;
  183#line 1088 "C:/NTDDK/inc/ntdef.h"
  184typedef LIST_ENTRY64 *PLIST_ENTRY64;
  185#line 1173 "C:/NTDDK/inc/ntdef.h"
  186struct _OBJECT_ATTRIBUTES {
  187   ULONG Length ;
  188   HANDLE RootDirectory ;
  189   PUNICODE_STRING ObjectName ;
  190   ULONG Attributes ;
  191   PVOID SecurityDescriptor ;
  192   PVOID SecurityQualityOfService ;
  193};
  194#line 1173 "C:/NTDDK/inc/ntdef.h"
  195typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES;
  196#line 1181 "C:/NTDDK/inc/ntdef.h"
  197typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
  198#line 17 "C:/NTDDK/inc/guiddef.h"
  199struct _GUID {
  200   unsigned long Data1 ;
  201   unsigned short Data2 ;
  202   unsigned short Data3 ;
  203   unsigned char Data4[8] ;
  204};
  205#line 17 "C:/NTDDK/inc/guiddef.h"
  206typedef struct _GUID GUID;
  207#line 1306 "C:/NTDDK/inc/ntdef.h"
  208typedef UCHAR KIRQL;
  209#line 1316
  210enum _NT_PRODUCT_TYPE {
  211    NtProductWinNt = 1,
  212    NtProductLanManNt = 2,
  213    NtProductServer = 3
  214} ;
  215#line 1316 "C:/NTDDK/inc/ntdef.h"
  216typedef enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE;
  217#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
  218struct _KTHREAD;
  219#line 75
  220struct _KTHREAD;
  221#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
  222typedef struct _KTHREAD *PKTHREAD;
  223#line 76
  224struct _ETHREAD;
  225#line 76
  226struct _ETHREAD;
  227#line 76 "C:/NTDDK/inc/ddk/ntddk.h"
  228typedef struct _ETHREAD *PETHREAD;
  229#line 77
  230struct _EPROCESS;
  231#line 77
  232struct _EPROCESS;
  233#line 77 "C:/NTDDK/inc/ddk/ntddk.h"
  234typedef struct _EPROCESS *PEPROCESS;
  235#line 80
  236struct _IO_TIMER;
  237#line 80
  238struct _IO_TIMER;
  239#line 80 "C:/NTDDK/inc/ddk/ntddk.h"
  240typedef struct _IO_TIMER *PIO_TIMER;
  241#line 81
  242struct _OBJECT_TYPE;
  243#line 81
  244struct _OBJECT_TYPE;
  245#line 81 "C:/NTDDK/inc/ddk/ntddk.h"
  246typedef struct _OBJECT_TYPE *POBJECT_TYPE;
  247#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  248struct __anonstruct____missing_field_name_5 {
  249   SINGLE_LIST_ENTRY Next ;
  250   USHORT Depth ;
  251   USHORT Sequence ;
  252};
  253#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  254union _SLIST_HEADER {
  255   ULONGLONG Alignment ;
  256   struct __anonstruct____missing_field_name_5 __annonCompField3 ;
  257};
  258#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  259typedef union _SLIST_HEADER SLIST_HEADER;
  260#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  261typedef union _SLIST_HEADER *PSLIST_HEADER;
  262#line 204 "C:/NTDDK/inc/ddk/ntddk.h"
  263typedef CCHAR KPROCESSOR_MODE;
  264#line 222
  265struct _KAPC;
  266#line 222
  267struct _KAPC;
  268#line 222
  269struct _KAPC;
  270#line 224 "C:/NTDDK/inc/ddk/ntddk.h"
  271typedef void (*PKNORMAL_ROUTINE)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 );
  272#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
  273struct _KAPC {
  274   CSHORT Type ;
  275   CSHORT Size ;
  276   ULONG Spare0 ;
  277   struct _KTHREAD *Thread ;
  278   LIST_ENTRY ApcListEntry ;
  279   void (*KernelRoutine)(struct _KAPC *Apc , PKNORMAL_ROUTINE *NormalRoutine , PVOID *NormalContext ,
  280                         PVOID *SystemArgument1 , PVOID *SystemArgument2 ) ;
  281   void (*RundownRoutine)(struct _KAPC *Apc ) ;
  282   void (*NormalRoutine)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ;
  283   PVOID NormalContext ;
  284   PVOID SystemArgument1 ;
  285   PVOID SystemArgument2 ;
  286   CCHAR ApcStateIndex ;
  287   KPROCESSOR_MODE ApcMode ;
  288   BOOLEAN Inserted ;
  289};
  290#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
  291typedef struct _KAPC KAPC;
  292#line 292
  293struct _KDPC;
  294#line 292
  295struct _KDPC;
  296#line 292
  297struct _KDPC;
  298#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  299struct _KDPC {
  300   CSHORT Type ;
  301   UCHAR Number ;
  302   UCHAR Importance ;
  303   LIST_ENTRY DpcListEntry ;
  304   void (*DeferredRoutine)(struct _KDPC *Dpc , PVOID DeferredContext , PVOID SystemArgument1 ,
  305                           PVOID SystemArgument2 ) ;
  306   PVOID DeferredContext ;
  307   PVOID SystemArgument1 ;
  308   PVOID SystemArgument2 ;
  309   PULONG_PTR Lock ;
  310};
  311#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  312typedef struct _KDPC KDPC;
  313#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  314typedef struct _KDPC *PKDPC;
  315#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  316struct _MDL {
  317   struct _MDL *Next ;
  318   CSHORT Size ;
  319   CSHORT MdlFlags ;
  320   struct _EPROCESS *Process ;
  321   PVOID MappedSystemVa ;
  322   PVOID StartVa ;
  323   ULONG ByteCount ;
  324   ULONG ByteOffset ;
  325};
  326#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  327typedef struct _MDL MDL;
  328#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  329typedef struct _MDL *PMDL;
  330#line 532 "C:/NTDDK/inc/ddk/ntddk.h"
  331typedef PVOID PACCESS_TOKEN;
  332#line 538 "C:/NTDDK/inc/ddk/ntddk.h"
  333typedef PVOID PSECURITY_DESCRIPTOR;
  334#line 546 "C:/NTDDK/inc/ddk/ntddk.h"
  335typedef ULONG ACCESS_MASK;
  336#line 27 "C:/NTDDK/inc/pshpack4.h"
  337#pragma pack(push,4)
  338#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
  339struct _LUID_AND_ATTRIBUTES {
  340   LUID Luid ;
  341   ULONG Attributes ;
  342};
  343#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
  344typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;
  345#line 30 "C:/NTDDK/inc/poppack.h"
  346#pragma pack(pop)
  347#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
  348struct _PRIVILEGE_SET {
  349   ULONG PrivilegeCount ;
  350   ULONG Control ;
  351   LUID_AND_ATTRIBUTES Privilege[1] ;
  352};
  353#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
  354typedef struct _PRIVILEGE_SET PRIVILEGE_SET;
  355#line 735
  356enum _SECURITY_IMPERSONATION_LEVEL {
  357    SecurityAnonymous = 0,
  358    SecurityIdentification = 1,
  359    SecurityImpersonation = 2,
  360    SecurityDelegation = 3
  361} ;
  362#line 735 "C:/NTDDK/inc/ddk/ntddk.h"
  363typedef enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;
  364#line 753 "C:/NTDDK/inc/ddk/ntddk.h"
  365typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
  366#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
  367struct _SECURITY_QUALITY_OF_SERVICE {
  368   ULONG Length ;
  369   SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
  370   SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode ;
  371   BOOLEAN EffectiveOnly ;
  372};
  373#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
  374typedef struct _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE;
  375#line 782 "C:/NTDDK/inc/ddk/ntddk.h"
  376typedef ULONG SECURITY_INFORMATION;
  377#line 816 "C:/NTDDK/inc/ddk/ntddk.h"
  378typedef LONG KPRIORITY;
  379#line 824 "C:/NTDDK/inc/ddk/ntddk.h"
  380typedef ULONG_PTR KSPIN_LOCK;
  381#line 825 "C:/NTDDK/inc/ddk/ntddk.h"
  382typedef KSPIN_LOCK *PKSPIN_LOCK;
  383#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  384struct _RTL_QUERY_REGISTRY_TABLE {
  385   NTSTATUS ( __attribute__((__stdcall__)) (*QueryRoutine))(PWSTR ValueName , ULONG ValueType ,
  386                                                            PVOID ValueData , ULONG ValueLength ,
  387                                                            PVOID Context , PVOID EntryContext ) ;
  388   ULONG Flags ;
  389   PWSTR Name ;
  390   PVOID EntryContext ;
  391   ULONG DefaultType ;
  392   PVOID DefaultData ;
  393   ULONG DefaultLength ;
  394};
  395#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  396typedef struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE;
  397#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  398typedef struct _RTL_QUERY_REGISTRY_TABLE *PRTL_QUERY_REGISTRY_TABLE;
  399#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  400union __anonunion____missing_field_name_6 {
  401   NTSTATUS Status ;
  402   PVOID Pointer ;
  403};
  404#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  405struct _IO_STATUS_BLOCK {
  406   union __anonunion____missing_field_name_6 __annonCompField4 ;
  407   ULONG_PTR Information ;
  408};
  409#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  410typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK;
  411#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  412typedef struct _IO_STATUS_BLOCK *PIO_STATUS_BLOCK;
  413#line 3685
  414enum _FILE_INFORMATION_CLASS {
  415    FileDirectoryInformation = 1,
  416    FileFullDirectoryInformation = 2,
  417    FileBothDirectoryInformation = 3,
  418    FileBasicInformation = 4,
  419    FileStandardInformation = 5,
  420    FileInternalInformation = 6,
  421    FileEaInformation = 7,
  422    FileAccessInformation = 8,
  423    FileNameInformation = 9,
  424    FileRenameInformation = 10,
  425    FileLinkInformation = 11,
  426    FileNamesInformation = 12,
  427    FileDispositionInformation = 13,
  428    FilePositionInformation = 14,
  429    FileFullEaInformation = 15,
  430    FileModeInformation = 16,
  431    FileAlignmentInformation = 17,
  432    FileAllInformation = 18,
  433    FileAllocationInformation = 19,
  434    FileEndOfFileInformation = 20,
  435    FileAlternateNameInformation = 21,
  436    FileStreamInformation = 22,
  437    FilePipeInformation = 23,
  438    FilePipeLocalInformation = 24,
  439    FilePipeRemoteInformation = 25,
  440    FileMailslotQueryInformation = 26,
  441    FileMailslotSetInformation = 27,
  442    FileCompressionInformation = 28,
  443    FileObjectIdInformation = 29,
  444    FileCompletionInformation = 30,
  445    FileMoveClusterInformation = 31,
  446    FileQuotaInformation = 32,
  447    FileReparsePointInformation = 33,
  448    FileNetworkOpenInformation = 34,
  449    FileAttributeTagInformation = 35,
  450    FileTrackingInformation = 36,
  451    FileMaximumInformation = 37
  452} ;
  453#line 3685 "C:/NTDDK/inc/ddk/ntddk.h"
  454typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS;
  455#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
  456struct _FILE_BASIC_INFORMATION {
  457   LARGE_INTEGER CreationTime ;
  458   LARGE_INTEGER LastAccessTime ;
  459   LARGE_INTEGER LastWriteTime ;
  460   LARGE_INTEGER ChangeTime ;
  461   ULONG FileAttributes ;
  462};
  463#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
  464typedef struct _FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION;
  465#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
  466struct _FILE_STANDARD_INFORMATION {
  467   LARGE_INTEGER AllocationSize ;
  468   LARGE_INTEGER EndOfFile ;
  469   ULONG NumberOfLinks ;
  470   BOOLEAN DeletePending ;
  471   BOOLEAN Directory ;
  472};
  473#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
  474typedef struct _FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION;
  475#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
  476struct _FILE_NETWORK_OPEN_INFORMATION {
  477   LARGE_INTEGER CreationTime ;
  478   LARGE_INTEGER LastAccessTime ;
  479   LARGE_INTEGER LastWriteTime ;
  480   LARGE_INTEGER ChangeTime ;
  481   LARGE_INTEGER AllocationSize ;
  482   LARGE_INTEGER EndOfFile ;
  483   ULONG FileAttributes ;
  484};
  485#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
  486typedef struct _FILE_NETWORK_OPEN_INFORMATION *PFILE_NETWORK_OPEN_INFORMATION;
  487#line 3798
  488enum _FSINFOCLASS {
  489    FileFsVolumeInformation = 1,
  490    FileFsLabelInformation = 2,
  491    FileFsSizeInformation = 3,
  492    FileFsDeviceInformation = 4,
  493    FileFsAttributeInformation = 5,
  494    FileFsControlInformation = 6,
  495    FileFsFullSizeInformation = 7,
  496    FileFsObjectIdInformation = 8,
  497    FileFsMaximumInformation = 9
  498} ;
  499#line 3798 "C:/NTDDK/inc/ddk/ntddk.h"
  500typedef enum _FSINFOCLASS FS_INFORMATION_CLASS;
  501#line 3829
  502enum _INTERFACE_TYPE {
  503    InterfaceTypeUndefined = -1,
  504    Internal = 0,
  505    Isa = 1,
  506    Eisa = 2,
  507    MicroChannel = 3,
  508    TurboChannel = 4,
  509    PCIBus = 5,
  510    VMEBus = 6,
  511    NuBus = 7,
  512    PCMCIABus = 8,
  513    CBus = 9,
  514    MPIBus = 10,
  515    MPSABus = 11,
  516    ProcessorInternal = 12,
  517    InternalPowerBus = 13,
  518    PNPISABus = 14,
  519    PNPBus = 15,
  520    MaximumInterfaceType = 16
  521} ;
  522#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
  523typedef enum _INTERFACE_TYPE INTERFACE_TYPE;
  524#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
  525typedef enum _INTERFACE_TYPE *PINTERFACE_TYPE;
  526#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
  527struct _KEY_VALUE_FULL_INFORMATION {
  528   ULONG TitleIndex ;
  529   ULONG Type ;
  530   ULONG DataOffset ;
  531   ULONG DataLength ;
  532   ULONG NameLength ;
  533   WCHAR Name[1] ;
  534};
  535#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
  536typedef struct _KEY_VALUE_FULL_INFORMATION *PKEY_VALUE_FULL_INFORMATION;
  537#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
  538struct _CLIENT_ID {
  539   HANDLE UniqueProcess ;
  540   HANDLE UniqueThread ;
  541};
  542#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
  543typedef struct _CLIENT_ID CLIENT_ID;
  544#line 4298 "C:/NTDDK/inc/ddk/ntddk.h"
  545typedef CLIENT_ID *PCLIENT_ID;
  546#line 4587
  547enum _SYSTEM_POWER_STATE {
  548    PowerSystemUnspecified = 0,
  549    PowerSystemWorking = 1,
  550    PowerSystemSleeping1 = 2,
  551    PowerSystemSleeping2 = 3,
  552    PowerSystemSleeping3 = 4,
  553    PowerSystemHibernate = 5,
  554    PowerSystemShutdown = 6,
  555    PowerSystemMaximum = 7
  556} ;
  557#line 4587 "C:/NTDDK/inc/ddk/ntddk.h"
  558typedef enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE;
  559#line 4598
  560enum __anonenum_POWER_ACTION_11 {
  561    PowerActionNone = 0,
  562    PowerActionReserved = 1,
  563    PowerActionSleep = 2,
  564    PowerActionHibernate = 3,
  565    PowerActionShutdown = 4,
  566    PowerActionShutdownReset = 5,
  567    PowerActionShutdownOff = 6,
  568    PowerActionWarmEject = 7
  569} ;
  570#line 4598 "C:/NTDDK/inc/ddk/ntddk.h"
  571typedef enum __anonenum_POWER_ACTION_11 POWER_ACTION;
  572#line 4609
  573enum _DEVICE_POWER_STATE {
  574    PowerDeviceUnspecified = 0,
  575    PowerDeviceD0 = 1,
  576    PowerDeviceD1 = 2,
  577    PowerDeviceD2 = 3,
  578    PowerDeviceD3 = 4,
  579    PowerDeviceMaximum = 5
  580} ;
  581#line 4609 "C:/NTDDK/inc/ddk/ntddk.h"
  582typedef enum _DEVICE_POWER_STATE DEVICE_POWER_STATE;
  583#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
  584union _POWER_STATE {
  585   SYSTEM_POWER_STATE SystemState ;
  586   DEVICE_POWER_STATE DeviceState ;
  587};
  588#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
  589typedef union _POWER_STATE POWER_STATE;
  590#line 4623
  591enum _POWER_STATE_TYPE {
  592    SystemPowerState = 0,
  593    DevicePowerState = 1
  594} ;
  595#line 4623 "C:/NTDDK/inc/ddk/ntddk.h"
  596typedef enum _POWER_STATE_TYPE POWER_STATE_TYPE;
  597#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
  598struct _KSYSTEM_TIME {
  599   ULONG LowPart ;
  600   LONG High1Time ;
  601   LONG High2Time ;
  602};
  603#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
  604typedef struct _KSYSTEM_TIME KSYSTEM_TIME;
  605#line 7850
  606enum _ALTERNATIVE_ARCHITECTURE_TYPE {
  607    StandardDesign = 0,
  608    NEC98x86 = 1,
  609    EndAlternatives = 2
  610} ;
  611#line 7850 "C:/NTDDK/inc/ddk/ntddk.h"
  612typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE;
  613#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
  614struct _KUSER_SHARED_DATA {
  615   ULONG volatile   TickCountLow ;
  616   ULONG TickCountMultiplier ;
  617   KSYSTEM_TIME volatile   InterruptTime ;
  618   KSYSTEM_TIME volatile   SystemTime ;
  619   KSYSTEM_TIME volatile   TimeZoneBias ;
  620   USHORT ImageNumberLow ;
  621   USHORT ImageNumberHigh ;
  622   WCHAR NtSystemRoot[260] ;
  623   ULONG MaxStackTraceDepth ;
  624   ULONG CryptoExponent ;
  625   ULONG TimeZoneId ;
  626   ULONG Reserved2[8] ;
  627   NT_PRODUCT_TYPE NtProductType ;
  628   BOOLEAN ProductTypeIsValid ;
  629   ULONG NtMajorVersion ;
  630   ULONG NtMinorVersion ;
  631   BOOLEAN ProcessorFeatures[64] ;
  632   ULONG Reserved1 ;
  633   ULONG Reserved3 ;
  634   ULONG volatile   TimeSlip ;
  635   ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture ;
  636   LARGE_INTEGER SystemExpirationDate ;
  637   ULONG SuiteMask ;
  638   BOOLEAN KdDebuggerEnabled ;
  639};
  640#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
  641typedef struct _KUSER_SHARED_DATA KUSER_SHARED_DATA;
  642#line 8211 "C:/NTDDK/inc/ddk/ntddk.h"
  643typedef PVOID PASSIGNED_RESOURCE;
  644#line 27 "C:/NTDDK/inc/pshpack4.h"
  645#pragma pack(push,4)
  646#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  647struct __anonstruct_Generic_16 {
  648   PHYSICAL_ADDRESS Start ;
  649   ULONG Length ;
  650};
  651#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  652struct __anonstruct_Port_17 {
  653   PHYSICAL_ADDRESS Start ;
  654   ULONG Length ;
  655};
  656#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  657struct __anonstruct_Interrupt_18 {
  658   ULONG Level ;
  659   ULONG Vector ;
  660   ULONG Affinity ;
  661};
  662#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  663struct __anonstruct_Memory_19 {
  664   PHYSICAL_ADDRESS Start ;
  665   ULONG Length ;
  666};
  667#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  668struct __anonstruct_Dma_20 {
  669   ULONG Channel ;
  670   ULONG Port ;
  671   ULONG Reserved1 ;
  672};
  673#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  674struct __anonstruct_DevicePrivate_21 {
  675   ULONG Data[3] ;
  676};
  677#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  678struct __anonstruct_BusNumber_22 {
  679   ULONG Start ;
  680   ULONG Length ;
  681   ULONG Reserved ;
  682};
  683#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  684struct __anonstruct_DeviceSpecificData_23 {
  685   ULONG DataSize ;
  686   ULONG Reserved1 ;
  687   ULONG Reserved2 ;
  688};
  689#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  690union __anonunion_u_15 {
  691   struct __anonstruct_Generic_16 Generic ;
  692   struct __anonstruct_Port_17 Port ;
  693   struct __anonstruct_Interrupt_18 Interrupt ;
  694   struct __anonstruct_Memory_19 Memory ;
  695   struct __anonstruct_Dma_20 Dma ;
  696   struct __anonstruct_DevicePrivate_21 DevicePrivate ;
  697   struct __anonstruct_BusNumber_22 BusNumber ;
  698   struct __anonstruct_DeviceSpecificData_23 DeviceSpecificData ;
  699};
  700#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  701struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
  702   UCHAR Type ;
  703   UCHAR ShareDisposition ;
  704   USHORT Flags ;
  705   union __anonunion_u_15 u ;
  706};
  707#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  708typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR;
  709#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  710typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
  711#line 30 "C:/NTDDK/inc/poppack.h"
  712#pragma pack(pop)
  713#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
  714struct _CM_PARTIAL_RESOURCE_LIST {
  715   USHORT Version ;
  716   USHORT Revision ;
  717   ULONG Count ;
  718   CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1] ;
  719};
  720#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
  721typedef struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST;
  722#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  723struct _CM_FULL_RESOURCE_DESCRIPTOR {
  724   INTERFACE_TYPE InterfaceType ;
  725   ULONG BusNumber ;
  726   CM_PARTIAL_RESOURCE_LIST PartialResourceList ;
  727};
  728#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  729typedef struct _CM_FULL_RESOURCE_DESCRIPTOR CM_FULL_RESOURCE_DESCRIPTOR;
  730#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  731typedef struct _CM_FULL_RESOURCE_DESCRIPTOR *PCM_FULL_RESOURCE_DESCRIPTOR;
  732#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
  733struct _CM_RESOURCE_LIST {
  734   ULONG Count ;
  735   CM_FULL_RESOURCE_DESCRIPTOR List[1] ;
  736};
  737#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
  738typedef struct _CM_RESOURCE_LIST *PCM_RESOURCE_LIST;
  739#line 27 "C:/NTDDK/inc/pshpack1.h"
  740#pragma pack(push,1)
  741#line 30 "C:/NTDDK/inc/poppack.h"
  742#pragma pack(pop)
  743#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
  744struct _CM_FLOPPY_DEVICE_DATA {
  745   USHORT Version ;
  746   USHORT Revision ;
  747   CHAR Size[8] ;
  748   ULONG MaxDensity ;
  749   ULONG MountDensity ;
  750   UCHAR StepRateHeadUnloadTime ;
  751   UCHAR HeadLoadTime ;
  752   UCHAR MotorOffTime ;
  753   UCHAR SectorLengthCode ;
  754   UCHAR SectorPerTrack ;
  755   UCHAR ReadWriteGapLength ;
  756   UCHAR DataTransferLength ;
  757   UCHAR FormatGapLength ;
  758   UCHAR FormatFillCharacter ;
  759   UCHAR HeadSettleTime ;
  760   UCHAR MotorSettleTime ;
  761   UCHAR MaximumTrackValue ;
  762   UCHAR DataTransferRate ;
  763};
  764#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
  765typedef struct _CM_FLOPPY_DEVICE_DATA *PCM_FLOPPY_DEVICE_DATA;
  766#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  767struct __anonstruct_Port_25 {
  768   ULONG Length ;
  769   ULONG Alignment ;
  770   PHYSICAL_ADDRESS MinimumAddress ;
  771   PHYSICAL_ADDRESS MaximumAddress ;
  772};
  773#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  774struct __anonstruct_Memory_26 {
  775   ULONG Length ;
  776   ULONG Alignment ;
  777   PHYSICAL_ADDRESS MinimumAddress ;
  778   PHYSICAL_ADDRESS MaximumAddress ;
  779};
  780#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  781struct __anonstruct_Interrupt_27 {
  782   ULONG MinimumVector ;
  783   ULONG MaximumVector ;
  784};
  785#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  786struct __anonstruct_Dma_28 {
  787   ULONG MinimumChannel ;
  788   ULONG MaximumChannel ;
  789};
  790#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  791struct __anonstruct_Generic_29 {
  792   ULONG Length ;
  793   ULONG Alignment ;
  794   PHYSICAL_ADDRESS MinimumAddress ;
  795   PHYSICAL_ADDRESS MaximumAddress ;
  796};
  797#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  798struct __anonstruct_DevicePrivate_30 {
  799   ULONG Data[3] ;
  800};
  801#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  802struct __anonstruct_BusNumber_31 {
  803   ULONG Length ;
  804   ULONG MinBusNumber ;
  805   ULONG MaxBusNumber ;
  806   ULONG Reserved ;
  807};
  808#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  809struct __anonstruct_AssignedResource_32 {
  810   PASSIGNED_RESOURCE AssignedResource ;
  811};
  812#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  813struct __anonstruct_SubAllocateFrom_33 {
  814   UCHAR Type ;
  815   UCHAR Reserved[3] ;
  816   PASSIGNED_RESOURCE AssignedResource ;
  817   PHYSICAL_ADDRESS Transformation ;
  818};
  819#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  820struct __anonstruct_ConfigData_34 {
  821   ULONG Priority ;
  822   ULONG Reserved1 ;
  823   ULONG Reserved2 ;
  824};
  825#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  826union __anonunion_u_24 {
  827   struct __anonstruct_Port_25 Port ;
  828   struct __anonstruct_Memory_26 Memory ;
  829   struct __anonstruct_Interrupt_27 Interrupt ;
  830   struct __anonstruct_Dma_28 Dma ;
  831   struct __anonstruct_Generic_29 Generic ;
  832   struct __anonstruct_DevicePrivate_30 DevicePrivate ;
  833   struct __anonstruct_BusNumber_31 BusNumber ;
  834   struct __anonstruct_AssignedResource_32 AssignedResource ;
  835   struct __anonstruct_SubAllocateFrom_33 SubAllocateFrom ;
  836   struct __anonstruct_ConfigData_34 ConfigData ;
  837};
  838#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  839struct _IO_RESOURCE_DESCRIPTOR {
  840   UCHAR Option ;
  841   UCHAR Type ;
  842   UCHAR ShareDisposition ;
  843   UCHAR Spare1 ;
  844   USHORT Flags ;
  845   USHORT Spare2 ;
  846   union __anonunion_u_24 u ;
  847};
  848#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  849typedef struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR;
  850#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
  851struct _IO_RESOURCE_LIST {
  852   USHORT Version ;
  853   USHORT Revision ;
  854   ULONG Count ;
  855   IO_RESOURCE_DESCRIPTOR Descriptors[1] ;
  856};
  857#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
  858typedef struct _IO_RESOURCE_LIST IO_RESOURCE_LIST;
  859#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
  860struct _IO_RESOURCE_REQUIREMENTS_LIST {
  861   ULONG ListSize ;
  862   INTERFACE_TYPE InterfaceType ;
  863   ULONG BusNumber ;
  864   ULONG SlotNumber ;
  865   ULONG Reserved[3] ;
  866   ULONG AlternativeLists ;
  867   IO_RESOURCE_LIST List[1] ;
  868};
  869#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
  870typedef struct _IO_RESOURCE_REQUIREMENTS_LIST *PIO_RESOURCE_REQUIREMENTS_LIST;
  871#line 9111
  872enum _CONFIGURATION_TYPE {
  873    ArcSystem = 0,
  874    CentralProcessor = 1,
  875    FloatingPointProcessor = 2,
  876    PrimaryIcache = 3,
  877    PrimaryDcache = 4,
  878    SecondaryIcache = 5,
  879    SecondaryDcache = 6,
  880    SecondaryCache = 7,
  881    EisaAdapter = 8,
  882    TcAdapter = 9,
  883    ScsiAdapter = 10,
  884    DtiAdapter = 11,
  885    MultiFunctionAdapter = 12,
  886    DiskController = 13,
  887    TapeController = 14,
  888    CdromController = 15,
  889    WormController = 16,
  890    SerialController = 17,
  891    NetworkController = 18,
  892    DisplayController = 19,
  893    ParallelController = 20,
  894    PointerController = 21,
  895    KeyboardController = 22,
  896    AudioController = 23,
  897    OtherController = 24,
  898    DiskPeripheral = 25,
  899    FloppyDiskPeripheral = 26,
  900    TapePeripheral = 27,
  901    ModemPeripheral = 28,
  902    MonitorPeripheral = 29,
  903    PrinterPeripheral = 30,
  904    PointerPeripheral = 31,
  905    KeyboardPeripheral = 32,
  906    TerminalPeripheral = 33,
  907    OtherPeripheral = 34,
  908    LinePeripheral = 35,
  909    NetworkPeripheral = 36,
  910    SystemMemory = 37,
  911    DockingInformation = 38,
  912    RealModeIrqRoutingTable = 39,
  913    MaximumType = 40
  914} ;
  915#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
  916typedef enum _CONFIGURATION_TYPE CONFIGURATION_TYPE;
  917#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
  918typedef enum _CONFIGURATION_TYPE *PCONFIGURATION_TYPE;
  919#line 9170
  920enum _KWAIT_REASON {
  921    Executive = 0,
  922    FreePage = 1,
  923    PageIn = 2,
  924    PoolAllocation = 3,
  925    DelayExecution = 4,
  926    Suspended = 5,
  927    UserRequest = 6,
  928    WrExecutive = 7,
  929    WrFreePage = 8,
  930    WrPageIn = 9,
  931    WrPoolAllocation = 10,
  932    WrDelayExecution = 11,
  933    WrSuspended = 12,
  934    WrUserRequest = 13,
  935    WrEventPair = 14,
  936    WrQueue = 15,
  937    WrLpcReceive = 16,
  938    WrLpcReply = 17,
  939    WrVirtualMemory = 18,
  940    WrPageOut = 19,
  941    WrRendezvous = 20,
  942    Spare2 = 21,
  943    Spare3 = 22,
  944    Spare4 = 23,
  945    Spare5 = 24,
  946    Spare6 = 25,
  947    WrKernel = 26,
  948    MaximumWaitReason = 27
  949} ;
  950#line 9170 "C:/NTDDK/inc/ddk/ntddk.h"
  951typedef enum _KWAIT_REASON KWAIT_REASON;
  952#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
  953struct _DISPATCHER_HEADER {
  954   UCHAR Type ;
  955   UCHAR Absolute ;
  956   UCHAR Size ;
  957   UCHAR Inserted ;
  958   LONG SignalState ;
  959   LIST_ENTRY WaitListHead ;
  960};
  961#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
  962typedef struct _DISPATCHER_HEADER DISPATCHER_HEADER;
  963#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
  964struct _KDEVICE_QUEUE {
  965   CSHORT Type ;
  966   CSHORT Size ;
  967   LIST_ENTRY DeviceListHead ;
  968   KSPIN_LOCK Lock ;
  969   BOOLEAN Busy ;
  970};
  971#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
  972typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE;
  973#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
  974struct _KDEVICE_QUEUE_ENTRY {
  975   LIST_ENTRY DeviceListEntry ;
  976   ULONG SortKey ;
  977   BOOLEAN Inserted ;
  978};
  979#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
  980typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY;
  981#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  982struct _KEVENT {
  983   DISPATCHER_HEADER Header ;
  984};
  985#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  986typedef struct _KEVENT KEVENT;
  987#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  988typedef struct _KEVENT *PKEVENT;
  989#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  990typedef struct _KEVENT *PRKEVENT;
  991#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  992struct _KSEMAPHORE {
  993   DISPATCHER_HEADER Header ;
  994   LONG Limit ;
  995};
  996#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  997typedef struct _KSEMAPHORE KSEMAPHORE;
  998#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  999typedef struct _KSEMAPHORE *PKSEMAPHORE;
 1000#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
 1001typedef struct _KSEMAPHORE *PRKSEMAPHORE;
 1002#line 10057
 1003enum _MEMORY_CACHING_TYPE {
 1004    MmNonCached = 0,
 1005    MmCached = 1,
 1006    MmWriteCombined = 2,
 1007    MmHardwareCoherentCached = 3,
 1008    MmNonCachedUnordered = 4,
 1009    MmUSWCCached = 5,
 1010    MmMaximumCacheType = 6
 1011} ;
 1012#line 10057 "C:/NTDDK/inc/ddk/ntddk.h"
 1013typedef enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE;
 1014#line 10115
 1015enum _POOL_TYPE {
 1016    NonPagedPool = 0,
 1017    PagedPool = 1,
 1018    NonPagedPoolMustSucceed = 2,
 1019    DontUseThisType = 3,
 1020    NonPagedPoolCacheAligned = 4,
 1021    PagedPoolCacheAligned = 5,
 1022    NonPagedPoolCacheAlignedMustS = 6,
 1023    MaxPoolType = 7,
 1024    NonPagedPoolSession = 32,
 1025    PagedPoolSession = 33,
 1026    NonPagedPoolMustSucceedSession = 34,
 1027    DontUseThisTypeSession = 35,
 1028    NonPagedPoolCacheAlignedSession = 36,
 1029    PagedPoolCacheAlignedSession = 37,
 1030    NonPagedPoolCacheAlignedMustSSession = 38
 1031} ;
 1032#line 10115 "C:/NTDDK/inc/ddk/ntddk.h"
 1033typedef enum _POOL_TYPE POOL_TYPE;
 1034#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1035struct _FAST_MUTEX {
 1036   LONG Count ;
 1037   PKTHREAD Owner ;
 1038   ULONG Contention ;
 1039   KEVENT Event ;
 1040   ULONG OldIrql ;
 1041};
 1042#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1043typedef struct _FAST_MUTEX FAST_MUTEX;
 1044#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1045typedef struct _FAST_MUTEX *PFAST_MUTEX;
 1046#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1047union __anonunion____missing_field_name_35 {
 1048   ULONG AllocateMisses ;
 1049   ULONG AllocateHits ;
 1050};
 1051#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1052union __anonunion____missing_field_name_36 {
 1053   ULONG FreeMisses ;
 1054   ULONG FreeHits ;
 1055};
 1056#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1057union __anonunion____missing_field_name_37 {
 1058   ULONG LastAllocateMisses ;
 1059   ULONG LastAllocateHits ;
 1060};
 1061#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1062struct _GENERAL_LOOKASIDE {
 1063   SLIST_HEADER ListHead ;
 1064   USHORT Depth ;
 1065   USHORT MaximumDepth ;
 1066   ULONG TotalAllocates ;
 1067   union __anonunion____missing_field_name_35 __annonCompField7 ;
 1068   ULONG TotalFrees ;
 1069   union __anonunion____missing_field_name_36 __annonCompField8 ;
 1070   POOL_TYPE Type ;
 1071   ULONG Tag ;
 1072   ULONG Size ;
 1073   PVOID (*Allocate)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 1074   void (*Free)(PVOID Buffer ) ;
 1075   LIST_ENTRY ListEntry ;
 1076   ULONG LastTotalAllocates ;
 1077   union __anonunion____missing_field_name_37 __annonCompField9 ;
 1078   ULONG Future[2] ;
 1079};
 1080#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1081typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE;
 1082#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
 1083struct _NPAGED_LOOKASIDE_LIST {
 1084   GENERAL_LOOKASIDE L ;
 1085   KSPIN_LOCK Lock ;
 1086};
 1087#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
 1088typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST;
 1089#line 11156 "C:/NTDDK/inc/ddk/ntddk.h"
 1090typedef ULONG_PTR ERESOURCE_THREAD;
 1091#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1092union __anonunion____missing_field_name_38 {
 1093   LONG OwnerCount ;
 1094   ULONG TableSize ;
 1095};
 1096#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1097struct _OWNER_ENTRY {
 1098   ERESOURCE_THREAD OwnerThread ;
 1099   union __anonunion____missing_field_name_38 __annonCompField10 ;
 1100};
 1101#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1102typedef struct _OWNER_ENTRY OWNER_ENTRY;
 1103#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1104typedef struct _OWNER_ENTRY *POWNER_ENTRY;
 1105#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
 1106union __anonunion____missing_field_name_39 {
 1107   PVOID Address ;
 1108   ULONG_PTR CreatorBackTraceIndex ;
 1109};
 1110#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
 1111struct _ERESOURCE {
 1112   LIST_ENTRY SystemResourcesList ;
 1113   POWNER_ENTRY OwnerTable ;
 1114   SHORT ActiveCount ;
 1115   USHORT Flag ;
 1116   PKSEMAPHORE SharedWaiters ;
 1117   PKEVENT ExclusiveWaiters ;
 1118   OWNER_ENTRY OwnerThreads[2] ;
 1119   ULONG ContentionCount ;
 1120   USHORT NumberOfSharedWaiters ;
 1121   USHORT NumberOfExclusiveWaiters ;
 1122   union __anonunion____missing_field_name_39 __annonCompField11 ;
 1123   KSPIN_LOCK SpinLock ;
 1124};
 1125#line 11884
 1126enum _LOCK_OPERATION {
 1127    IoReadAccess = 0,
 1128    IoWriteAccess = 1,
 1129    IoModifyAccess = 2
 1130} ;
 1131#line 11884 "C:/NTDDK/inc/ddk/ntddk.h"
 1132typedef enum _LOCK_OPERATION LOCK_OPERATION;
 1133#line 11970
 1134enum _MM_PAGE_PRIORITY {
 1135    LowPagePriority = 0,
 1136    NormalPagePriority = 16,
 1137    HighPagePriority = 32
 1138} ;
 1139#line 11970 "C:/NTDDK/inc/ddk/ntddk.h"
 1140typedef enum _MM_PAGE_PRIORITY MM_PAGE_PRIORITY;
 1141#line 12399
 1142struct _DRIVER_OBJECT;
 1143#line 12399
 1144struct _DRIVER_OBJECT;
 1145#line 12399
 1146struct _DRIVER_OBJECT;
 1147#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
 1148struct _SECURITY_SUBJECT_CONTEXT {
 1149   PACCESS_TOKEN ClientToken ;
 1150   SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
 1151   PACCESS_TOKEN PrimaryToken ;
 1152   PVOID ProcessAuditId ;
 1153};
 1154#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
 1155typedef struct _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT;
 1156#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
 1157struct _INITIAL_PRIVILEGE_SET {
 1158   ULONG PrivilegeCount ;
 1159   ULONG Control ;
 1160   LUID_AND_ATTRIBUTES Privilege[3] ;
 1161};
 1162#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
 1163typedef struct _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET;
 1164#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1165union __anonunion_Privileges_40 {
 1166   INITIAL_PRIVILEGE_SET InitialPrivilegeSet ;
 1167   PRIVILEGE_SET PrivilegeSet ;
 1168};
 1169#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1170struct _ACCESS_STATE {
 1171   LUID OperationID ;
 1172   BOOLEAN SecurityEvaluated ;
 1173   BOOLEAN GenerateAudit ;
 1174   BOOLEAN GenerateOnClose ;
 1175   BOOLEAN PrivilegesAllocated ;
 1176   ULONG Flags ;
 1177   ACCESS_MASK RemainingDesiredAccess ;
 1178   ACCESS_MASK PreviouslyGrantedAccess ;
 1179   ACCESS_MASK OriginalDesiredAccess ;
 1180   SECURITY_SUBJECT_CONTEXT SubjectSecurityContext ;
 1181   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1182   PVOID AuxData ;
 1183   union __anonunion_Privileges_40 Privileges ;
 1184   BOOLEAN AuditPrivileges ;
 1185   UNICODE_STRING ObjectName ;
 1186   UNICODE_STRING ObjectTypeName ;
 1187};
 1188#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1189typedef struct _ACCESS_STATE *PACCESS_STATE;
 1190#line 12906
 1191struct _DEVICE_OBJECT;
 1192#line 12906
 1193struct _DEVICE_OBJECT;
 1194#line 12906
 1195struct _DEVICE_OBJECT;
 1196#line 12908
 1197struct _DRIVER_OBJECT;
 1198#line 12911
 1199struct _FILE_OBJECT;
 1200#line 12911
 1201struct _FILE_OBJECT;
 1202#line 12911
 1203struct _FILE_OBJECT;
 1204#line 12912
 1205struct _IRP;
 1206#line 12912
 1207struct _IRP;
 1208#line 12912
 1209struct _IRP;
 1210#line 12913
 1211struct _SCSI_REQUEST_BLOCK;
 1212#line 12913
 1213struct _SCSI_REQUEST_BLOCK;
 1214#line 12913
 1215struct _SCSI_REQUEST_BLOCK;
 1216#line 12979 "C:/NTDDK/inc/ddk/ntddk.h"
 1217typedef NTSTATUS (*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp );
 1218#line 13289
 1219struct _COMPRESSED_DATA_INFO;
 1220#line 13289
 1221struct _COMPRESSED_DATA_INFO;
 1222#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
 1223struct _FAST_IO_DISPATCH {
 1224   ULONG SizeOfFastIoDispatch ;
 1225   BOOLEAN (*FastIoCheckIfPossible)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1226                                    ULONG Length , BOOLEAN Wait , ULONG LockKey ,
 1227                                    BOOLEAN CheckForReadOperation , PIO_STATUS_BLOCK IoStatus ,
 1228                                    struct _DEVICE_OBJECT *DeviceObject ) ;
 1229   BOOLEAN (*FastIoRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1230                         ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
 1231                         PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1232   BOOLEAN (*FastIoWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1233                          ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
 1234                          PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1235   BOOLEAN (*FastIoQueryBasicInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1236                                   PFILE_BASIC_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
 1237                                   struct _DEVICE_OBJECT *DeviceObject ) ;
 1238   BOOLEAN (*FastIoQueryStandardInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1239                                      PFILE_STANDARD_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
 1240                                      struct _DEVICE_OBJECT *DeviceObject ) ;
 1241   BOOLEAN (*FastIoLock)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1242                         PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
 1243                         BOOLEAN FailImmediately , BOOLEAN ExclusiveLock , PIO_STATUS_BLOCK IoStatus ,
 1244                         struct _DEVICE_OBJECT *DeviceObject ) ;
 1245   BOOLEAN (*FastIoUnlockSingle)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1246                                 PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
 1247                                 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1248   BOOLEAN (*FastIoUnlockAll)(struct _FILE_OBJECT *FileObject , PEPROCESS ProcessId ,
 1249                              PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1250   BOOLEAN (*FastIoUnlockAllByKey)(struct _FILE_OBJECT *FileObject , PVOID ProcessId ,
 1251                                   ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1252   BOOLEAN (*FastIoDeviceControl)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1253                                  PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer ,
 1254                                  ULONG OutputBufferLength , ULONG IoControlCode ,
 1255                                  PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1256   void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
 1257   void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
 1258   void (*FastIoDetachDevice)(struct _DEVICE_OBJECT *SourceDevice , struct _DEVICE_OBJECT *TargetDevice ) ;
 1259   BOOLEAN (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1260                                         struct _FILE_NETWORK_OPEN_INFORMATION *Buffer ,
 1261                                         struct _IO_STATUS_BLOCK *IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1262   NTSTATUS (*AcquireForModWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER EndingOffset ,
 1263                                  struct _ERESOURCE **ResourceToRelease , struct _DEVICE_OBJECT *DeviceObject ) ;
 1264   BOOLEAN (*MdlRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1265                      ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
 1266                      struct _DEVICE_OBJECT *DeviceObject ) ;
 1267   BOOLEAN (*MdlReadComplete)(struct _FILE_OBJECT *FileObject , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1268   BOOLEAN (*PrepareMdlWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1269                              ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
 1270                              struct _DEVICE_OBJECT *DeviceObject ) ;
 1271   BOOLEAN (*MdlWriteComplete)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1272                               PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1273   BOOLEAN (*FastIoReadCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1274                                   ULONG Length , ULONG LockKey , PVOID Buffer , PMDL *MdlChain ,
 1275                                   PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
 1276                                   ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
 1277   BOOLEAN (*FastIoWriteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1278                                    ULONG Length , ULONG LockKey , PVOID Buffer ,
 1279                                    PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
 1280                                    ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
 1281   BOOLEAN (*MdlReadCompleteCompressed)(struct _FILE_OBJECT *FileObject , PMDL MdlChain ,
 1282                                        struct _DEVICE_OBJECT *DeviceObject ) ;
 1283   BOOLEAN (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1284                                         PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1285   BOOLEAN (*FastIoQueryOpen)(struct _IRP *Irp , PFILE_NETWORK_OPEN_INFORMATION NetworkInformation ,
 1286                              struct _DEVICE_OBJECT *DeviceObject ) ;
 1287   NTSTATUS (*ReleaseForModWrite)(struct _FILE_OBJECT *FileObject , struct _ERESOURCE *ResourceToRelease ,
 1288                                  struct _DEVICE_OBJECT *DeviceObject ) ;
 1289   NTSTATUS (*AcquireForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
 1290   NTSTATUS (*ReleaseForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
 1291};
 1292#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
 1293typedef struct _FAST_IO_DISPATCH *PFAST_IO_DISPATCH;
 1294#line 13386
 1295enum _IO_ALLOCATION_ACTION {
 1296    KeepObject = 1,
 1297    DeallocateObject = 2,
 1298    DeallocateObjectKeepRegisters = 3
 1299} ;
 1300#line 13386 "C:/NTDDK/inc/ddk/ntddk.h"
 1301typedef enum _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION;
 1302#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
 1303struct _IO_SECURITY_CONTEXT {
 1304   PSECURITY_QUALITY_OF_SERVICE SecurityQos ;
 1305   PACCESS_STATE AccessState ;
 1306   ACCESS_MASK DesiredAccess ;
 1307   ULONG FullCreateOptions ;
 1308};
 1309#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
 1310typedef struct _IO_SECURITY_CONTEXT *PIO_SECURITY_CONTEXT;
 1311#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
 1312struct _VPB {
 1313   CSHORT Type ;
 1314   CSHORT Size ;
 1315   USHORT Flags ;
 1316   USHORT VolumeLabelLength ;
 1317   struct _DEVICE_OBJECT *DeviceObject ;
 1318   struct _DEVICE_OBJECT *RealDevice ;
 1319   ULONG SerialNumber ;
 1320   ULONG ReferenceCount ;
 1321   WCHAR VolumeLabel[(32U * sizeof(WCHAR )) / sizeof(WCHAR )] ;
 1322};
 1323#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
 1324typedef struct _VPB *PVPB;
 1325#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
 1326struct _WAIT_CONTEXT_BLOCK {
 1327   KDEVICE_QUEUE_ENTRY WaitQueueEntry ;
 1328   IO_ALLOCATION_ACTION (*DeviceRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ,
 1329                                         PVOID MapRegisterBase , PVOID Context ) ;
 1330   PVOID DeviceContext ;
 1331   ULONG NumberOfMapRegisters ;
 1332   PVOID DeviceObject ;
 1333   PVOID CurrentIrp ;
 1334   PKDPC BufferChainingDpc ;
 1335};
 1336#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
 1337typedef struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK;
 1338#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1339union __anonunion_Queue_43 {
 1340   LIST_ENTRY ListEntry ;
 1341   WAIT_CONTEXT_BLOCK Wcb ;
 1342};
 1343#line 13537
 1344struct _DEVOBJ_EXTENSION;
 1345#line 13537
 1346struct _DEVOBJ_EXTENSION;
 1347#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1348struct _DEVICE_OBJECT {
 1349   CSHORT Type ;
 1350   USHORT Size ;
 1351   LONG ReferenceCount ;
 1352   struct _DRIVER_OBJECT *DriverObject ;
 1353   struct _DEVICE_OBJECT *NextDevice ;
 1354   struct _DEVICE_OBJECT *AttachedDevice ;
 1355   struct _IRP *CurrentIrp ;
 1356   PIO_TIMER Timer ;
 1357   ULONG Flags ;
 1358   ULONG Characteristics ;
 1359   PVPB Vpb ;
 1360   PVOID DeviceExtension ;
 1361   ULONG DeviceType ;
 1362   CCHAR StackSize ;
 1363   union __anonunion_Queue_43 Queue ;
 1364   ULONG AlignmentRequirement ;
 1365   KDEVICE_QUEUE DeviceQueue ;
 1366   KDPC Dpc ;
 1367   ULONG ActiveThreadCount ;
 1368   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1369   KEVENT DeviceLock ;
 1370   USHORT SectorSize ;
 1371   USHORT Spare1 ;
 1372   struct _DEVOBJ_EXTENSION *DeviceObjectExtension ;
 1373   PVOID Reserved ;
 1374};
 1375#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1376typedef struct _DEVICE_OBJECT DEVICE_OBJECT;
 1377#line 13575 "C:/NTDDK/inc/ddk/ntddk.h"
 1378typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
 1379#line 13580 "C:/NTDDK/inc/ddk/ntddk.h"
 1380struct _DEVOBJ_EXTENSION {
 1381   CSHORT Type ;
 1382   USHORT Size ;
 1383   PDEVICE_OBJECT DeviceObject ;
 1384};
 1385#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
 1386struct _DRIVER_EXTENSION {
 1387   struct _DRIVER_OBJECT *DriverObject ;
 1388   NTSTATUS (*AddDevice)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
 1389   ULONG Count ;
 1390   UNICODE_STRING ServiceKeyName ;
 1391};
 1392#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
 1393typedef struct _DRIVER_EXTENSION *PDRIVER_EXTENSION;
 1394#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
 1395struct _DRIVER_OBJECT {
 1396   CSHORT Type ;
 1397   CSHORT Size ;
 1398   PDEVICE_OBJECT DeviceObject ;
 1399   ULONG Flags ;
 1400   PVOID DriverStart ;
 1401   ULONG DriverSize ;
 1402   PVOID DriverSection ;
 1403   PDRIVER_EXTENSION DriverExtension ;
 1404   UNICODE_STRING DriverName ;
 1405   PUNICODE_STRING HardwareDatabase ;
 1406   PFAST_IO_DISPATCH FastIoDispatch ;
 1407   NTSTATUS (*DriverInit)(struct _DRIVER_OBJECT *DriverObject , PUNICODE_STRING RegistryPath ) ;
 1408   void (*DriverStartIo)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
 1409   void (*DriverUnload)(struct _DRIVER_OBJECT *DriverObject ) ;
 1410   PDRIVER_DISPATCH MajorFunction[28] ;
 1411};
 1412#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
 1413typedef struct _DRIVER_OBJECT DRIVER_OBJECT;
 1414#line 13706 "C:/NTDDK/inc/ddk/ntddk.h"
 1415typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
 1416#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
 1417struct _SECTION_OBJECT_POINTERS {
 1418   PVOID DataSectionObject ;
 1419   PVOID SharedCacheMap ;
 1420   PVOID ImageSectionObject ;
 1421};
 1422#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
 1423typedef struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS;
 1424#line 13720 "C:/NTDDK/inc/ddk/ntddk.h"
 1425typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS;
 1426#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
 1427struct _IO_COMPLETION_CONTEXT {
 1428   PVOID Port ;
 1429   PVOID Key ;
 1430};
 1431#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
 1432typedef struct _IO_COMPLETION_CONTEXT *PIO_COMPLETION_CONTEXT;
 1433#line 13759 "C:/NTDDK/inc/ddk/ntddk.h"
 1434struct _FILE_OBJECT {
 1435   CSHORT Type ;
 1436   CSHORT Size ;
 1437   PDEVICE_OBJECT DeviceObject ;
 1438   PVPB Vpb ;
 1439   PVOID FsContext ;
 1440   PVOID FsContext2 ;
 1441   PSECTION_OBJECT_POINTERS SectionObjectPointer ;
 1442   PVOID PrivateCacheMap ;
 1443   NTSTATUS FinalStatus ;
 1444   struct _FILE_OBJECT *RelatedFileObject ;
 1445   BOOLEAN LockOperation ;
 1446   BOOLEAN DeletePending ;
 1447   BOOLEAN ReadAccess ;
 1448   BOOLEAN WriteAccess ;
 1449   BOOLEAN DeleteAccess ;
 1450   BOOLEAN SharedRead ;
 1451   BOOLEAN SharedWrite ;
 1452   BOOLEAN SharedDelete ;
 1453   ULONG Flags ;
 1454   UNICODE_STRING FileName ;
 1455   LARGE_INTEGER CurrentByteOffset ;
 1456   ULONG Waiters ;
 1457   ULONG Busy ;
 1458   PVOID LastLock ;
 1459   KEVENT Lock ;
 1460   KEVENT Event ;
 1461   PIO_COMPLETION_CONTEXT CompletionContext ;
 1462};
 1463#line 13788 "C:/NTDDK/inc/ddk/ntddk.h"
 1464typedef struct _FILE_OBJECT *PFILE_OBJECT;
 1465#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1466union __anonunion_AssociatedIrp_44 {
 1467   struct _IRP *MasterIrp ;
 1468   LONG IrpCount ;
 1469   PVOID SystemBuffer ;
 1470};
 1471#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1472struct __anonstruct_AsynchronousParameters_46 {
 1473   void ( __attribute__((__stdcall__)) (*UserApcRoutine))(PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock ,
 1474                                                          ULONG Reserved ) ;
 1475   PVOID UserApcContext ;
 1476};
 1477#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1478union __anonunion_Overlay_45 {
 1479   struct __anonstruct_AsynchronousParameters_46 AsynchronousParameters ;
 1480   LARGE_INTEGER AllocationSize ;
 1481};
 1482#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1483struct __anonstruct____missing_field_name_50 {
 1484   PVOID DriverContext[4] ;
 1485};
 1486#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1487union __anonunion____missing_field_name_49 {
 1488   KDEVICE_QUEUE_ENTRY DeviceQueueEntry ;
 1489   struct __anonstruct____missing_field_name_50 __annonCompField14 ;
 1490};
 1491#line 13828
 1492struct _IO_STACK_LOCATION;
 1493#line 13828
 1494struct _IO_STACK_LOCATION;
 1495#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1496union __anonunion____missing_field_name_52 {
 1497   struct _IO_STACK_LOCATION *CurrentStackLocation ;
 1498   ULONG PacketType ;
 1499};
 1500#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1501struct __anonstruct____missing_field_name_51 {
 1502   LIST_ENTRY ListEntry ;
 1503   union __anonunion____missing_field_name_52 __annonCompField16 ;
 1504};
 1505#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1506struct __anonstruct_Overlay_48 {
 1507   union __anonunion____missing_field_name_49 __annonCompField15 ;
 1508   PETHREAD Thread ;
 1509   PCHAR AuxiliaryBuffer ;
 1510   struct __anonstruct____missing_field_name_51 __annonCompField17 ;
 1511   PFILE_OBJECT OriginalFileObject ;
 1512};
 1513#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1514union __anonunion_Tail_47 {
 1515   struct __anonstruct_Overlay_48 Overlay ;
 1516   KAPC Apc ;
 1517   PVOID CompletionKey ;
 1518};
 1519#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1520struct _IRP {
 1521   CSHORT Type ;
 1522   USHORT Size ;
 1523   PMDL MdlAddress ;
 1524   ULONG Flags ;
 1525   union __anonunion_AssociatedIrp_44 AssociatedIrp ;
 1526   LIST_ENTRY ThreadListEntry ;
 1527   IO_STATUS_BLOCK IoStatus ;
 1528   KPROCESSOR_MODE RequestorMode ;
 1529   BOOLEAN PendingReturned ;
 1530   CHAR StackCount ;
 1531   CHAR CurrentLocation ;
 1532   BOOLEAN Cancel ;
 1533   KIRQL CancelIrql ;
 1534   CCHAR ApcEnvironment ;
 1535   UCHAR AllocationFlags ;
 1536   PIO_STATUS_BLOCK UserIosb ;
 1537   PKEVENT UserEvent ;
 1538   union __anonunion_Overlay_45 Overlay ;
 1539   void (*CancelRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
 1540   PVOID UserBuffer ;
 1541   union __anonunion_Tail_47 Tail ;
 1542};
 1543#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1544typedef struct _IRP IRP;
 1545#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1546typedef struct _IRP *PIRP;
 1547#line 14163
 1548enum _DEVICE_RELATION_TYPE {
 1549    BusRelations = 0,
 1550    EjectionRelations = 1,
 1551    PowerRelations = 2,
 1552    RemovalRelations = 3,
 1553    TargetDeviceRelation = 4
 1554} ;
 1555#line 14163 "C:/NTDDK/inc/ddk/ntddk.h"
 1556typedef enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE;
 1557#line 14176
 1558enum _DEVICE_USAGE_NOTIFICATION_TYPE {
 1559    DeviceUsageTypeUndefined = 0,
 1560    DeviceUsageTypePaging = 1,
 1561    DeviceUsageTypeHibernation = 2,
 1562    DeviceUsageTypeDumpFile = 3
 1563} ;
 1564#line 14176 "C:/NTDDK/inc/ddk/ntddk.h"
 1565typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE;
 1566#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
 1567struct _INTERFACE {
 1568   USHORT Size ;
 1569   USHORT Version ;
 1570   PVOID Context ;
 1571   void (*InterfaceReference)(PVOID Context ) ;
 1572   void (*InterfaceDereference)(PVOID Context ) ;
 1573};
 1574#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
 1575typedef struct _INTERFACE *PINTERFACE;
 1576#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
 1577struct _DEVICE_CAPABILITIES {
 1578   USHORT Size ;
 1579   USHORT Version ;
 1580   ULONG DeviceD1 : 1 ;
 1581   ULONG DeviceD2 : 1 ;
 1582   ULONG LockSupported : 1 ;
 1583   ULONG EjectSupported : 1 ;
 1584   ULONG Removable : 1 ;
 1585   ULONG DockDevice : 1 ;
 1586   ULONG UniqueID : 1 ;
 1587   ULONG SilentInstall : 1 ;
 1588   ULONG RawDeviceOK : 1 ;
 1589   ULONG SurpriseRemovalOK : 1 ;
 1590   ULONG WakeFromD0 : 1 ;
 1591   ULONG WakeFromD1 : 1 ;
 1592   ULONG WakeFromD2 : 1 ;
 1593   ULONG WakeFromD3 : 1 ;
 1594   ULONG HardwareDisabled : 1 ;
 1595   ULONG NonDynamic : 1 ;
 1596   ULONG WarmEjectSupported : 1 ;
 1597   ULONG Reserved : 15 ;
 1598   ULONG Address ;
 1599   ULONG UINumber ;
 1600   DEVICE_POWER_STATE DeviceState[7] ;
 1601   SYSTEM_POWER_STATE SystemWake ;
 1602   DEVICE_POWER_STATE DeviceWake ;
 1603   ULONG D1Latency ;
 1604   ULONG D2Latency ;
 1605   ULONG D3Latency ;
 1606};
 1607#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
 1608typedef struct _DEVICE_CAPABILITIES *PDEVICE_CAPABILITIES;
 1609#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
 1610struct _POWER_SEQUENCE {
 1611   ULONG SequenceD1 ;
 1612   ULONG SequenceD2 ;
 1613   ULONG SequenceD3 ;
 1614};
 1615#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
 1616typedef struct _POWER_SEQUENCE *PPOWER_SEQUENCE;
 1617#line 14235
 1618enum __anonenum_BUS_QUERY_ID_TYPE_53 {
 1619    BusQueryDeviceID = 0,
 1620    BusQueryHardwareIDs = 1,
 1621    BusQueryCompatibleIDs = 2,
 1622    BusQueryInstanceID = 3,
 1623    BusQueryDeviceSerialNumber = 4
 1624} ;
 1625#line 14235 "C:/NTDDK/inc/ddk/ntddk.h"
 1626typedef enum __anonenum_BUS_QUERY_ID_TYPE_53 BUS_QUERY_ID_TYPE;
 1627#line 14252
 1628enum __anonenum_DEVICE_TEXT_TYPE_54 {
 1629    DeviceTextDescription = 0,
 1630    DeviceTextLocationInformation = 1
 1631} ;
 1632#line 14252 "C:/NTDDK/inc/ddk/ntddk.h"
 1633typedef enum __anonenum_DEVICE_TEXT_TYPE_54 DEVICE_TEXT_TYPE;
 1634#line 27 "C:/NTDDK/inc/pshpack4.h"
 1635#pragma pack(push,4)
 1636#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1637struct __anonstruct_Create_56 {
 1638   PIO_SECURITY_CONTEXT SecurityContext ;
 1639   ULONG Options ;
 1640   USHORT FileAttributes ;
 1641   USHORT ShareAccess ;
 1642   ULONG EaLength ;
 1643};
 1644#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1645struct __anonstruct_Read_57 {
 1646   ULONG Length ;
 1647   ULONG Key ;
 1648   LARGE_INTEGER ByteOffset ;
 1649};
 1650#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1651struct __anonstruct_Write_58 {
 1652   ULONG Length ;
 1653   ULONG Key ;
 1654   LARGE_INTEGER ByteOffset ;
 1655};
 1656#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1657struct __anonstruct_QueryFile_59 {
 1658   ULONG Length ;
 1659   FILE_INFORMATION_CLASS FileInformationClass ;
 1660};
 1661#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1662struct __anonstruct____missing_field_name_62 {
 1663   BOOLEAN ReplaceIfExists ;
 1664   BOOLEAN AdvanceOnly ;
 1665};
 1666#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1667union __anonunion____missing_field_name_61 {
 1668   struct __anonstruct____missing_field_name_62 __annonCompField18 ;
 1669   ULONG ClusterCount ;
 1670   HANDLE DeleteHandle ;
 1671};
 1672#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1673struct __anonstruct_SetFile_60 {
 1674   ULONG Length ;
 1675   FILE_INFORMATION_CLASS FileInformationClass ;
 1676   PFILE_OBJECT FileObject ;
 1677   union __anonunion____missing_field_name_61 __annonCompField19 ;
 1678};
 1679#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1680struct __anonstruct_QueryVolume_63 {
 1681   ULONG Length ;
 1682   FS_INFORMATION_CLASS FsInformationClass ;
 1683};
 1684#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1685struct __anonstruct_DeviceIoControl_64 {
 1686   ULONG OutputBufferLength ;
 1687   ULONG InputBufferLength ;
 1688   ULONG IoControlCode ;
 1689   PVOID Type3InputBuffer ;
 1690};
 1691#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1692struct __anonstruct_QuerySecurity_65 {
 1693   SECURITY_INFORMATION SecurityInformation ;
 1694   ULONG Length ;
 1695};
 1696#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1697struct __anonstruct_SetSecurity_66 {
 1698   SECURITY_INFORMATION SecurityInformation ;
 1699   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1700};
 1701#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1702struct __anonstruct_MountVolume_67 {
 1703   PVPB Vpb ;
 1704   PDEVICE_OBJECT DeviceObject ;
 1705};
 1706#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1707struct __anonstruct_VerifyVolume_68 {
 1708   PVPB Vpb ;
 1709   PDEVICE_OBJECT DeviceObject ;
 1710};
 1711#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1712struct __anonstruct_Scsi_69 {
 1713   struct _SCSI_REQUEST_BLOCK *Srb ;
 1714};
 1715#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1716struct __anonstruct_QueryDeviceRelations_70 {
 1717   DEVICE_RELATION_TYPE Type ;
 1718};
 1719#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1720struct __anonstruct_QueryInterface_71 {
 1721   GUID const   *InterfaceType ;
 1722   USHORT Size ;
 1723   USHORT Version ;
 1724   PINTERFACE Interface ;
 1725   PVOID InterfaceSpecificData ;
 1726};
 1727#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1728struct __anonstruct_DeviceCapabilities_72 {
 1729   PDEVICE_CAPABILITIES Capabilities ;
 1730};
 1731#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1732struct __anonstruct_FilterResourceRequirements_73 {
 1733   PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList ;
 1734};
 1735#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1736struct __anonstruct_ReadWriteConfig_74 {
 1737   ULONG WhichSpace ;
 1738   PVOID Buffer ;
 1739   ULONG Offset ;
 1740   ULONG Length ;
 1741};
 1742#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1743struct __anonstruct_SetLock_75 {
 1744   BOOLEAN Lock ;
 1745};
 1746#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1747struct __anonstruct_QueryId_76 {
 1748   BUS_QUERY_ID_TYPE IdType ;
 1749};
 1750#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1751struct __anonstruct_QueryDeviceText_77 {
 1752   DEVICE_TEXT_TYPE DeviceTextType ;
 1753   LCID LocaleId ;
 1754};
 1755#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1756struct __anonstruct_UsageNotification_78 {
 1757   BOOLEAN InPath ;
 1758   BOOLEAN Reserved[3] ;
 1759   DEVICE_USAGE_NOTIFICATION_TYPE Type ;
 1760};
 1761#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1762struct __anonstruct_WaitWake_79 {
 1763   SYSTEM_POWER_STATE PowerState ;
 1764};
 1765#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1766struct __anonstruct_PowerSequence_80 {
 1767   PPOWER_SEQUENCE PowerSequence ;
 1768};
 1769#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1770struct __anonstruct_Power_81 {
 1771   ULONG SystemContext ;
 1772   POWER_STATE_TYPE Type ;
 1773   POWER_STATE State ;
 1774   POWER_ACTION ShutdownType ;
 1775};
 1776#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1777struct __anonstruct_StartDevice_82 {
 1778   PCM_RESOURCE_LIST AllocatedResources ;
 1779   PCM_RESOURCE_LIST AllocatedResourcesTranslated ;
 1780};
 1781#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1782struct __anonstruct_WMI_83 {
 1783   ULONG_PTR ProviderId ;
 1784   PVOID DataPath ;
 1785   ULONG BufferSize ;
 1786   PVOID Buffer ;
 1787};
 1788#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1789struct __anonstruct_Others_84 {
 1790   PVOID Argument1 ;
 1791   PVOID Argument2 ;
 1792   PVOID Argument3 ;
 1793   PVOID Argument4 ;
 1794};
 1795#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1796union __anonunion_Parameters_55 {
 1797   struct __anonstruct_Create_56 Create ;
 1798   struct __anonstruct_Read_57 Read ;
 1799   struct __anonstruct_Write_58 Write ;
 1800   struct __anonstruct_QueryFile_59 QueryFile ;
 1801   struct __anonstruct_SetFile_60 SetFile ;
 1802   struct __anonstruct_QueryVolume_63 QueryVolume ;
 1803   struct __anonstruct_DeviceIoControl_64 DeviceIoControl ;
 1804   struct __anonstruct_QuerySecurity_65 QuerySecurity ;
 1805   struct __anonstruct_SetSecurity_66 SetSecurity ;
 1806   struct __anonstruct_MountVolume_67 MountVolume ;
 1807   struct __anonstruct_VerifyVolume_68 VerifyVolume ;
 1808   struct __anonstruct_Scsi_69 Scsi ;
 1809   struct __anonstruct_QueryDeviceRelations_70 QueryDeviceRelations ;
 1810   struct __anonstruct_QueryInterface_71 QueryInterface ;
 1811   struct __anonstruct_DeviceCapabilities_72 DeviceCapabilities ;
 1812   struct __anonstruct_FilterResourceRequirements_73 FilterResourceRequirements ;
 1813   struct __anonstruct_ReadWriteConfig_74 ReadWriteConfig ;
 1814   struct __anonstruct_SetLock_75 SetLock ;
 1815   struct __anonstruct_QueryId_76 QueryId ;
 1816   struct __anonstruct_QueryDeviceText_77 QueryDeviceText ;
 1817   struct __anonstruct_UsageNotification_78 UsageNotification ;
 1818   struct __anonstruct_WaitWake_79 WaitWake ;
 1819   struct __anonstruct_PowerSequence_80 PowerSequence ;
 1820   struct __anonstruct_Power_81 Power ;
 1821   struct __anonstruct_StartDevice_82 StartDevice ;
 1822   struct __anonstruct_WMI_83 WMI ;
 1823   struct __anonstruct_Others_84 Others ;
 1824};
 1825#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1826struct _IO_STACK_LOCATION {
 1827   UCHAR MajorFunction ;
 1828   UCHAR MinorFunction ;
 1829   UCHAR Flags ;
 1830   UCHAR Control ;
 1831   union __anonunion_Parameters_55 Parameters ;
 1832   PDEVICE_OBJECT DeviceObject ;
 1833   PFILE_OBJECT FileObject ;
 1834   NTSTATUS (*CompletionRoutine)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 1835   PVOID Context ;
 1836};
 1837#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1838typedef struct _IO_STACK_LOCATION IO_STACK_LOCATION;
 1839#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1840typedef struct _IO_STACK_LOCATION *PIO_STACK_LOCATION;
 1841#line 30 "C:/NTDDK/inc/poppack.h"
 1842#pragma pack(pop)
 1843#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1844struct _CONFIGURATION_INFORMATION {
 1845   ULONG DiskCount ;
 1846   ULONG FloppyCount ;
 1847   ULONG CdRomCount ;
 1848   ULONG TapeCount ;
 1849   ULONG ScsiPortCount ;
 1850   ULONG SerialCount ;
 1851   ULONG ParallelCount ;
 1852   BOOLEAN AtDiskPrimaryAddressClaimed ;
 1853   BOOLEAN AtDiskSecondaryAddressClaimed ;
 1854   ULONG Version ;
 1855   ULONG MediumChangerCount ;
 1856};
 1857#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1858typedef struct _CONFIGURATION_INFORMATION CONFIGURATION_INFORMATION;
 1859#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1860typedef struct _CONFIGURATION_INFORMATION *PCONFIGURATION_INFORMATION;
 1861#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
 1862struct _OBJECT_HANDLE_INFORMATION {
 1863   ULONG HandleAttributes ;
 1864   ACCESS_MASK GrantedAccess ;
 1865};
 1866#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
 1867typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
 1868#line 248 "C:/NTDDK/inc/ntdddisk.h"
 1869enum _MEDIA_TYPE {
 1870    Unknown = 0,
 1871    F5_1Pt2_512 = 1,
 1872    F3_1Pt44_512 = 2,
 1873    F3_2Pt88_512 = 3,
 1874    F3_20Pt8_512 = 4,
 1875    F3_720_512 = 5,
 1876    F5_360_512 = 6,
 1877    F5_320_512 = 7,
 1878    F5_320_1024 = 8,
 1879    F5_180_512 = 9,
 1880    F5_160_512 = 10,
 1881    RemovableMedia = 11,
 1882    FixedMedia = 12,
 1883    F3_120M_512 = 13,
 1884    F3_640_512 = 14,
 1885    F5_640_512 = 15,
 1886    F5_720_512 = 16,
 1887    F3_1Pt2_512 = 17,
 1888    F3_1Pt23_1024 = 18,
 1889    F5_1Pt23_1024 = 19,
 1890    F3_128Mb_512 = 20,
 1891    F3_230Mb_512 = 21,
 1892    F8_256_128 = 22
 1893} ;
 1894#line 248 "C:/NTDDK/inc/ntdddisk.h"
 1895typedef enum _MEDIA_TYPE MEDIA_TYPE;
 1896#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1897struct _FORMAT_PARAMETERS {
 1898   MEDIA_TYPE MediaType ;
 1899   ULONG StartCylinderNumber ;
 1900   ULONG EndCylinderNumber ;
 1901   ULONG StartHeadNumber ;
 1902   ULONG EndHeadNumber ;
 1903};
 1904#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1905typedef struct _FORMAT_PARAMETERS FORMAT_PARAMETERS;
 1906#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1907typedef struct _FORMAT_PARAMETERS *PFORMAT_PARAMETERS;
 1908#line 294 "C:/NTDDK/inc/ntdddisk.h"
 1909typedef USHORT BAD_TRACK_NUMBER;
 1910#line 295 "C:/NTDDK/inc/ntdddisk.h"
 1911typedef USHORT *PBAD_TRACK_NUMBER;
 1912#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1913struct _FORMAT_EX_PARAMETERS {
 1914   MEDIA_TYPE MediaType ;
 1915   ULONG StartCylinderNumber ;
 1916   ULONG EndCylinderNumber ;
 1917   ULONG StartHeadNumber ;
 1918   ULONG EndHeadNumber ;
 1919   USHORT FormatGapLength ;
 1920   USHORT SectorsPerTrack ;
 1921   USHORT SectorNumber[1] ;
 1922};
 1923#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1924typedef struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS;
 1925#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1926typedef struct _FORMAT_EX_PARAMETERS *PFORMAT_EX_PARAMETERS;
 1927#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1928struct _DISK_GEOMETRY {
 1929   LARGE_INTEGER Cylinders ;
 1930   MEDIA_TYPE MediaType ;
 1931   ULONG TracksPerCylinder ;
 1932   ULONG SectorsPerTrack ;
 1933   ULONG BytesPerSector ;
 1934};
 1935#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1936typedef struct _DISK_GEOMETRY DISK_GEOMETRY;
 1937#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1938typedef struct _DISK_GEOMETRY *PDISK_GEOMETRY;
 1939#line 27 "C:/NTDDK/inc/pshpack1.h"
 1940#pragma pack(push,1)
 1941#line 30 "C:/NTDDK/inc/poppack.h"
 1942#pragma pack(pop)
 1943#line 27 "C:/NTDDK/inc/pshpack1.h"
 1944#pragma pack(push,1)
 1945#line 30 "C:/NTDDK/inc/poppack.h"
 1946#pragma pack(pop)
 1947#line 27 "C:/NTDDK/inc/pshpack1.h"
 1948#pragma pack(push,1)
 1949#line 30 "C:/NTDDK/inc/poppack.h"
 1950#pragma pack(pop)
 1951#line 27 "C:/NTDDK/inc/pshpack1.h"
 1952#pragma pack(push,1)
 1953#line 30 "C:/NTDDK/inc/poppack.h"
 1954#pragma pack(pop)
 1955#line 27 "C:/NTDDK/inc/pshpack1.h"
 1956#pragma pack(push,1)
 1957#line 30 "C:/NTDDK/inc/poppack.h"
 1958#pragma pack(pop)
 1959#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1960struct _TRANSFER_BUFFER {
 1961   PHYSICAL_ADDRESS Logical ;
 1962   PVOID Virtual ;
 1963};
 1964#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1965typedef struct _TRANSFER_BUFFER TRANSFER_BUFFER;
 1966#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1967struct _ACPI_FDI_DATA {
 1968   ULONG DriveNumber ;
 1969   ULONG DeviceType ;
 1970   ULONG MaxCylinderNumber ;
 1971   ULONG MaxSectorNumber ;
 1972   ULONG MaxHeadNumber ;
 1973   ULONG StepRateHeadUnloadTime ;
 1974   ULONG HeadLoadTime ;
 1975   ULONG MotorOffTime ;
 1976   ULONG SectorLengthCode ;
 1977   ULONG SectorPerTrack ;
 1978   ULONG ReadWriteGapLength ;
 1979   ULONG DataTransferLength ;
 1980   ULONG FormatGapLength ;
 1981   ULONG FormatFillCharacter ;
 1982   ULONG HeadSettleTime ;
 1983   ULONG MotorSettleTime ;
 1984};
 1985#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1986typedef struct _ACPI_FDI_DATA ACPI_FDI_DATA;
 1987#line 201
 1988enum _ACPI_FDI_DEVICE_TYPE {
 1989    CmosProblem = 0,
 1990    Form525Capacity360 = 1,
 1991    Form525Capacity1200 = 2,
 1992    Form35Capacity720 = 3,
 1993    Form35Capacity1440 = 4,
 1994    Form35Capacity2880 = 5
 1995} ;
 1996#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1997struct _FDC_INFO {
 1998   UCHAR FloppyControllerType ;
 1999   UCHAR SpeedsAvailable ;
 2000   ULONG AdapterBufferSize ;
 2001   INTERFACE_TYPE BusType ;
 2002   ULONG BusNumber ;
 2003   ULONG ControllerNumber ;
 2004   ULONG PeripheralNumber ;
 2005   ULONG UnitNumber ;
 2006   ULONG MaxTransferSize ;
 2007   BOOLEAN AcpiBios ;
 2008   BOOLEAN AcpiFdiSupported ;
 2009   ACPI_FDI_DATA AcpiFdiData ;
 2010   ULONG BufferCount ;
 2011   ULONG BufferSize ;
 2012   TRANSFER_BUFFER BufferAddress[] ;
 2013};
 2014#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2015typedef struct _FDC_INFO FDC_INFO;
 2016#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2017typedef struct _FDC_INFO *PFDC_INFO;
 2018#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2019struct _FDC_ENABLE_PARMS {
 2020   UCHAR DriveOnValue ;
 2021   USHORT TimeToWait ;
 2022   BOOLEAN MotorStarted ;
 2023};
 2024#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2025typedef struct _FDC_ENABLE_PARMS FDC_ENABLE_PARMS;
 2026#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2027struct _FDC_DISK_CHANGE_PARMS {
 2028   UCHAR DriveStatus ;
 2029   UCHAR DriveOnValue ;
 2030};
 2031#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2032typedef struct _FDC_DISK_CHANGE_PARMS FDC_DISK_CHANGE_PARMS;
 2033#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2034struct _ISSUE_FDC_COMMAND_PARMS {
 2035   PUCHAR FifoInBuffer ;
 2036   PUCHAR FifoOutBuffer ;
 2037   PVOID IoHandle ;
 2038   ULONG IoOffset ;
 2039   ULONG TransferBytes ;
 2040   ULONG TimeOut ;
 2041};
 2042#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2043typedef struct _ISSUE_FDC_COMMAND_PARMS ISSUE_FDC_COMMAND_PARMS;
 2044#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2045struct _SET_HD_BIT_PARMS {
 2046   BOOLEAN DriveType144MB ;
 2047   BOOLEAN Media144MB ;
 2048   BOOLEAN More120MB ;
 2049   UCHAR DeviceUnit ;
 2050   BOOLEAN ChangedHdBit ;
 2051};
 2052#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2053typedef struct _SET_HD_BIT_PARMS SET_HD_BIT_PARMS;
 2054#line 202 "C:/NTDDK/inc/mountmgr.h"
 2055struct _MOUNTDEV_NAME {
 2056   USHORT NameLength ;
 2057   WCHAR Name[1] ;
 2058};
 2059#line 202 "C:/NTDDK/inc/mountmgr.h"
 2060typedef struct _MOUNTDEV_NAME MOUNTDEV_NAME;
 2061#line 202 "C:/NTDDK/inc/mountmgr.h"
 2062typedef struct _MOUNTDEV_NAME *PMOUNTDEV_NAME;
 2063#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2064struct _MOUNTDEV_UNIQUE_ID {
 2065   USHORT UniqueIdLength ;
 2066   UCHAR UniqueId[1] ;
 2067};
 2068#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2069typedef struct _MOUNTDEV_UNIQUE_ID MOUNTDEV_UNIQUE_ID;
 2070#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2071typedef struct _MOUNTDEV_UNIQUE_ID *PMOUNTDEV_UNIQUE_ID;
 2072#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2073struct _MOUNTDEV_SUGGESTED_LINK_NAME {
 2074   BOOLEAN UseOnlyIfThereAreNoOtherLinks ;
 2075   USHORT NameLength ;
 2076   WCHAR Name[1] ;
 2077};
 2078#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2079typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME MOUNTDEV_SUGGESTED_LINK_NAME;
 2080#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2081typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME *PMOUNTDEV_SUGGESTED_LINK_NAME;
 2082#line 105 "./flo_data.h"
 2083struct _BOOT_SECTOR_INFO {
 2084   UCHAR JumpByte[1] ;
 2085   UCHAR Ignore1[2] ;
 2086   UCHAR OemData[8] ;
 2087   UCHAR BytesPerSector[2] ;
 2088   UCHAR Ignore2[6] ;
 2089   UCHAR NumberOfSectors[2] ;
 2090   UCHAR MediaByte[1] ;
 2091   UCHAR Ignore3[2] ;
 2092   UCHAR SectorsPerTrack[2] ;
 2093   UCHAR NumberOfHeads[2] ;
 2094};
 2095#line 105 "./flo_data.h"
 2096typedef struct _BOOT_SECTOR_INFO *PBOOT_SECTOR_INFO;
 2097#line 194
 2098enum _DRIVE_MEDIA_TYPE {
 2099    Drive360Media160 = 0,
 2100    Drive360Media180 = 1,
 2101    Drive360Media320 = 2,
 2102    Drive360Media32X = 3,
 2103    Drive360Media360 = 4,
 2104    Drive720Media720 = 5,
 2105    Drive120Media160 = 6,
 2106    Drive120Media180 = 7,
 2107    Drive120Media320 = 8,
 2108    Drive120Media32X = 9,
 2109    Drive120Media360 = 10,
 2110    Drive120Media120 = 11,
 2111    Drive144Media720 = 12,
 2112    Drive144Media144 = 13,
 2113    Drive288Media720 = 14,
 2114    Drive288Media144 = 15,
 2115    Drive288Media288 = 16
 2116} ;
 2117#line 194 "./flo_data.h"
 2118typedef enum _DRIVE_MEDIA_TYPE DRIVE_MEDIA_TYPE;
 2119#line 217
 2120enum _DRIVE_MEDIA_TYPE_NEC98 {
 2121    Drive360Media160Nec98 = 0,
 2122    Drive360Media180Nec98 = 1,
 2123    Drive360Media320Nec98 = 2,
 2124    Drive360Media32XNec98 = 3,
 2125    Drive360Media360Nec98 = 4,
 2126    Drive120Media160Nec98 = 5,
 2127    Drive120Media180Nec98 = 6,
 2128    Drive120Media320Nec98 = 7,
 2129    Drive120Media32XNec98 = 8,
 2130    Drive120Media360Nec98 = 9,
 2131    Drive120Media640Nec98 = 10,
 2132    Drive120Media720Nec98 = 11,
 2133    Drive120Media120Nec98 = 12,
 2134    Drive120Media123Nec98 = 13,
 2135    Drive144Media640Nec98 = 14,
 2136    Drive144Media720Nec98 = 15,
 2137    Drive144Media120Nec98 = 16,
 2138    Drive144Media123Nec98 = 17,
 2139    Drive144Media144Nec98 = 18,
 2140    Drive12EMedia120Nec98 = 19,
 2141    Drive12EMedia123Nec98 = 20
 2142} ;
 2143#line 217 "./flo_data.h"
 2144typedef enum _DRIVE_MEDIA_TYPE_NEC98 DRIVE_MEDIA_TYPE_NEC98;
 2145#line 260 "./flo_data.h"
 2146struct _DRIVE_MEDIA_LIMITS {
 2147   DRIVE_MEDIA_TYPE HighestDriveMediaType ;
 2148   DRIVE_MEDIA_TYPE LowestDriveMediaType ;
 2149};
 2150#line 260 "./flo_data.h"
 2151typedef struct _DRIVE_MEDIA_LIMITS DRIVE_MEDIA_LIMITS;
 2152#line 260 "./flo_data.h"
 2153typedef struct _DRIVE_MEDIA_LIMITS *PDRIVE_MEDIA_LIMITS;
 2154#line 277 "./flo_data.h"
 2155struct _DRIVE_MEDIA_LIMITS_NEC98 {
 2156   DRIVE_MEDIA_TYPE_NEC98 HighestDriveMediaType ;
 2157   DRIVE_MEDIA_TYPE_NEC98 LowestDriveMediaType ;
 2158};
 2159#line 277 "./flo_data.h"
 2160typedef struct _DRIVE_MEDIA_LIMITS_NEC98 DRIVE_MEDIA_LIMITS_NEC98;
 2161#line 298 "./flo_data.h"
 2162struct _DRIVE_MEDIA_CONSTANTS {
 2163   MEDIA_TYPE MediaType ;
 2164   UCHAR StepRateHeadUnloadTime ;
 2165   UCHAR HeadLoadTime ;
 2166   UCHAR MotorOffTime ;
 2167   UCHAR SectorLengthCode ;
 2168   USHORT BytesPerSector ;
 2169   UCHAR SectorsPerTrack ;
 2170   UCHAR ReadWriteGapLength ;
 2171   UCHAR FormatGapLength ;
 2172   UCHAR FormatFillCharacter ;
 2173   UCHAR HeadSettleTime ;
 2174   USHORT MotorSettleTimeRead ;
 2175   USHORT MotorSettleTimeWrite ;
 2176   UCHAR MaximumTrack ;
 2177   UCHAR CylinderShift ;
 2178   UCHAR DataTransferRate ;
 2179   UCHAR NumberOfHeads ;
 2180   UCHAR DataLength ;
 2181   UCHAR MediaByte ;
 2182   UCHAR SkewDelta ;
 2183};
 2184#line 298 "./flo_data.h"
 2185typedef struct _DRIVE_MEDIA_CONSTANTS DRIVE_MEDIA_CONSTANTS;
 2186#line 298 "./flo_data.h"
 2187typedef struct _DRIVE_MEDIA_CONSTANTS *PDRIVE_MEDIA_CONSTANTS;
 2188#line 528 "./flo_data.h"
 2189struct _DISKETTE_EXTENSION {
 2190   KSPIN_LOCK FlCancelSpinLock ;
 2191   PDEVICE_OBJECT UnderlyingPDO ;
 2192   PDEVICE_OBJECT TargetObject ;
 2193   BOOLEAN IsStarted ;
 2194   BOOLEAN IsRemoved ;
 2195   BOOLEAN HoldNewRequests ;
 2196   LIST_ENTRY NewRequestQueue ;
 2197   KSPIN_LOCK NewRequestQueueSpinLock ;
 2198   PDEVICE_OBJECT DeviceObject ;
 2199   KSEMAPHORE RequestSemaphore ;
 2200   KSPIN_LOCK ListSpinLock ;
 2201   FAST_MUTEX ThreadReferenceMutex ;
 2202   LONG ThreadReferenceCount ;
 2203   PKTHREAD FloppyThread ;
 2204   LIST_ENTRY ListEntry ;
 2205   BOOLEAN HardwareFailed ;
 2206   UCHAR HardwareFailCount ;
 2207   ULONG MaxTransferSize ;
 2208   UCHAR FifoBuffer[10] ;
 2209   PUCHAR IoBuffer ;
 2210   PMDL IoBufferMdl ;
 2211   ULONG IoBufferSize ;
 2212   PDRIVER_OBJECT DriverObject ;
 2213   DRIVE_MEDIA_TYPE LastDriveMediaType ;
 2214   BOOLEAN FloppyControllerAllocated ;
 2215   BOOLEAN ACPI_BIOS ;
 2216   UCHAR DriveType ;
 2217   ULONG BytesPerSector ;
 2218   ULONG ByteCapacity ;
 2219   MEDIA_TYPE MediaType ;
 2220   DRIVE_MEDIA_TYPE DriveMediaType ;
 2221   UCHAR DeviceUnit ;
 2222   UCHAR DriveOnValue ;
 2223   BOOLEAN IsReadOnly ;
 2224   DRIVE_MEDIA_CONSTANTS BiosDriveMediaConstants ;
 2225   DRIVE_MEDIA_CONSTANTS DriveMediaConstants ;
 2226   UCHAR PerpendicularMode ;
 2227   BOOLEAN ControllerConfigurable ;
 2228   UNICODE_STRING DeviceName ;
 2229   UNICODE_STRING InterfaceString ;
 2230   UNICODE_STRING ArcName ;
 2231   BOOLEAN ReleaseFdcWithMotorRunning ;
 2232   BOOLEAN PoweringDown ;
 2233   FAST_MUTEX PowerDownMutex ;
 2234   FAST_MUTEX HoldNewReqMutex ;
 2235};
 2236#line 528 "./flo_data.h"
 2237typedef struct _DISKETTE_EXTENSION DISKETTE_EXTENSION;
 2238#line 584 "./flo_data.h"
 2239typedef DISKETTE_EXTENSION *PDISKETTE_EXTENSION;
 2240#line 591 "./flo_data.h"
 2241struct _SENSE_DEVISE_STATUS_PTOS {
 2242   UCHAR ST3_PTOS ;
 2243};
 2244#line 591 "./flo_data.h"
 2245typedef struct _SENSE_DEVISE_STATUS_PTOS SENSE_DEVISE_STATUS_PTOS;
 2246#line 591 "./flo_data.h"
 2247typedef struct _SENSE_DEVISE_STATUS_PTOS *PSENSE_DEVISE_STATUS_PTOS;
 2248#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
 2249#pragma pack(push,8)
 2250#line 156
 2251#pragma pack(pop)
 2252#line 222 "C:/NTDDK/inc/ddk/ntddk.h"
 2253struct _KAPC;
 2254#line 292
 2255struct _KDPC;
 2256#line 27 "C:/NTDDK/inc/pshpack4.h"
 2257#pragma pack(push,4)
 2258#line 30 "C:/NTDDK/inc/poppack.h"
 2259#pragma pack(pop)
 2260#line 27 "C:/NTDDK/inc/pshpack4.h"
 2261#pragma pack(push,4)
 2262#line 30 "C:/NTDDK/inc/poppack.h"
 2263#pragma pack(pop)
 2264#line 27 "C:/NTDDK/inc/pshpack1.h"
 2265#pragma pack(push,1)
 2266#line 30 "C:/NTDDK/inc/poppack.h"
 2267#pragma pack(pop)
 2268#line 12399 "C:/NTDDK/inc/ddk/ntddk.h"
 2269struct _DRIVER_OBJECT;
 2270#line 12906
 2271struct _DEVICE_OBJECT;
 2272#line 12908
 2273struct _DRIVER_OBJECT;
 2274#line 12911
 2275struct _FILE_OBJECT;
 2276#line 12912
 2277struct _IRP;
 2278#line 12913
 2279struct _SCSI_REQUEST_BLOCK;
 2280#line 27 "C:/NTDDK/inc/pshpack4.h"
 2281#pragma pack(push,4)
 2282#line 30 "C:/NTDDK/inc/poppack.h"
 2283#pragma pack(pop)
 2284#line 307 "C:/NTDDK/inc/stdio.h"
 2285extern int ( __attribute__((__cdecl__)) sprintf)(char * , char const   *  , ...) ;
 2286#line 351
 2287extern int ( __attribute__((__cdecl__)) swprintf)(wchar_t * , wchar_t const   *  , ...) ;
 2288#line 832 "C:/NTDDK/inc/ntdef.h"
 2289#pragma warning(push)
 2290#line 834
 2291#pragma warning(disable:4035)
 2292#line 835 "C:/NTDDK/inc/ntdef.h"
 2293__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___0)(ULONGLONG Value ,
 2294                                                                      ULONG ShiftCount ) 
 2295{ 
 2296
 2297  {
 2298#line 850
 2299  return (0ULL);
 2300}
 2301}
 2302#line 845 "C:/NTDDK/inc/ntdef.h"
 2303__inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___0)(LONGLONG Value ,
 2304                                                                     ULONG ShiftCount ) 
 2305{ 
 2306
 2307  {
 2308#line 860
 2309  return (0LL);
 2310}
 2311}
 2312#line 855 "C:/NTDDK/inc/ntdef.h"
 2313__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___0)(ULONGLONG Value ,
 2314                                                                      ULONG ShiftCount ) 
 2315{ 
 2316
 2317  {
 2318#line 870
 2319  return (0ULL);
 2320}
 2321}
 2322#line 873
 2323#pragma warning(pop)
 2324#line 1094 "C:/NTDDK/inc/ntdef.h"
 2325__inline void ListEntry32To64(PLIST_ENTRY32 l32 , PLIST_ENTRY64 l64 ) 
 2326{ ULONG __cil_tmp3 ;
 2327  long __cil_tmp4 ;
 2328  long long __cil_tmp5 ;
 2329  unsigned int __cil_tmp6 ;
 2330  unsigned int __cil_tmp7 ;
 2331  unsigned int __cil_tmp8 ;
 2332  unsigned int __cil_tmp9 ;
 2333  ULONG __cil_tmp10 ;
 2334  long __cil_tmp11 ;
 2335  long long __cil_tmp12 ;
 2336  ULONG *mem_13 ;
 2337  ULONGLONG *mem_14 ;
 2338  ULONG *mem_15 ;
 2339  ULONGLONG *mem_16 ;
 2340
 2341  {
 2342#line 1101
 2343  mem_13 = (ULONG *)l32;
 2344#line 1101
 2345  __cil_tmp3 = *mem_13;
 2346#line 1101
 2347  __cil_tmp4 = (long )__cil_tmp3;
 2348#line 1101
 2349  __cil_tmp5 = (long long )__cil_tmp4;
 2350#line 1101
 2351  mem_14 = (ULONGLONG *)l64;
 2352#line 1101
 2353  *mem_14 = (unsigned long long )__cil_tmp5;
 2354#line 1102
 2355  __cil_tmp6 = (unsigned int )l64;
 2356#line 1102
 2357  __cil_tmp7 = __cil_tmp6 + 8;
 2358#line 1102
 2359  __cil_tmp8 = (unsigned int )l32;
 2360#line 1102
 2361  __cil_tmp9 = __cil_tmp8 + 4;
 2362#line 1102
 2363  mem_15 = (ULONG *)__cil_tmp9;
 2364#line 1102
 2365  __cil_tmp10 = *mem_15;
 2366#line 1102
 2367  __cil_tmp11 = (long )__cil_tmp10;
 2368#line 1102
 2369  __cil_tmp12 = (long long )__cil_tmp11;
 2370#line 1102
 2371  mem_16 = (ULONGLONG *)__cil_tmp7;
 2372#line 1102
 2373  *mem_16 = (unsigned long long )__cil_tmp12;
 2374#line 1105
 2375  return;
 2376}
 2377}
 2378#line 1105 "C:/NTDDK/inc/ntdef.h"
 2379__inline void ListEntry64To32(PLIST_ENTRY64 l64 , PLIST_ENTRY32 l32 ) 
 2380{ ULONGLONG __cil_tmp3 ;
 2381  unsigned int __cil_tmp4 ;
 2382  unsigned int __cil_tmp5 ;
 2383  unsigned int __cil_tmp6 ;
 2384  unsigned int __cil_tmp7 ;
 2385  ULONGLONG __cil_tmp8 ;
 2386  ULONGLONG *mem_9 ;
 2387  ULONG *mem_10 ;
 2388  ULONGLONG *mem_11 ;
 2389  ULONG *mem_12 ;
 2390
 2391  {
 2392#line 1112
 2393  mem_9 = (ULONGLONG *)l64;
 2394#line 1112
 2395  __cil_tmp3 = *mem_9;
 2396#line 1112
 2397  mem_10 = (ULONG *)l32;
 2398#line 1112
 2399  *mem_10 = (unsigned long )__cil_tmp3;
 2400#line 1113
 2401  __cil_tmp4 = (unsigned int )l32;
 2402#line 1113
 2403  __cil_tmp5 = __cil_tmp4 + 4;
 2404#line 1113
 2405  __cil_tmp6 = (unsigned int )l64;
 2406#line 1113
 2407  __cil_tmp7 = __cil_tmp6 + 8;
 2408#line 1113
 2409  mem_11 = (ULONGLONG *)__cil_tmp7;
 2410#line 1113
 2411  __cil_tmp8 = *mem_11;
 2412#line 1113
 2413  mem_12 = (ULONG *)__cil_tmp5;
 2414#line 1113
 2415  *mem_12 = (unsigned long )__cil_tmp8;
 2416#line 1116
 2417  return;
 2418}
 2419}
 2420#line 93 "C:/NTDDK/inc/string.h"
 2421extern void *( __attribute__((__cdecl__)) memcpy)(void * , void const   * , size_t  ) ;
 2422#line 95
 2423extern void *( __attribute__((__cdecl__)) memset)(void * , int  , size_t  ) ;
 2424#line 110
 2425extern void *( __attribute__((__cdecl__)) memmove)(void * , void const   * , size_t  ) ;
 2426#line 101 "C:/NTDDK/inc/ddk/ntddk.h"
 2427extern PKTHREAD ( __attribute__((__stdcall__)) KeGetCurrentThread)() ;
 2428#line 25 "C:/NTDDK/inc/pshpack4.h"
 2429#pragma warning(disable:4103)
 2430#line 28 "C:/NTDDK/inc/poppack.h"
 2431#pragma warning(disable:4103)
 2432#line 1136 "C:/NTDDK/inc/ddk/ntddk.h"
 2433 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
 2434                                                                                                PCWSTR Path ,
 2435                                                                                                PRTL_QUERY_REGISTRY_TABLE QueryTable ,
 2436                                                                                                PVOID Context ,
 2437                                                                                                PVOID Environment ) ;
 2438#line 1159
 2439 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
 2440                                                                                                PCWSTR Path ,
 2441                                                                                                PCWSTR ValueName ) ;
 2442#line 1264
 2443 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString ,
 2444                                                                                   PCSZ SourceString ) ;
 2445#line 1280
 2446 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
 2447                                                                                          PCWSTR SourceString ) ;
 2448#line 1335
 2449 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
 2450                                                                                                      PANSI_STRING SourceString ,
 2451                                                                                                      BOOLEAN AllocateDestinationString ) ;
 2452#line 1394
 2453 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
 2454                                                                                          PUNICODE_STRING SourceString ) ;
 2455#line 1429
 2456 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ;
 2457#line 1516
 2458 __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const   *Source1 ,
 2459                                                                                        void const   *Source2 ,
 2460                                                                                        SIZE_T Length ) ;
 2461#line 1718 "C:/NTDDK/inc/ddk/ntddk.h"
 2462__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerAdd)(LARGE_INTEGER Addend1 ,
 2463                                                                          LARGE_INTEGER Addend2 ) 
 2464{ LARGE_INTEGER Sum ;
 2465
 2466  {
 2467#line 1728
 2468  Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
 2469#line 1729
 2470  return (Sum);
 2471}
 2472}
 2473#line 1736 "C:/NTDDK/inc/ddk/ntddk.h"
 2474__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedIntegerMultiply)(LONG Multiplicand ,
 2475                                                                                  LONG Multiplier ) 
 2476{ LARGE_INTEGER Product ;
 2477  unsigned long long __cil_tmp4 ;
 2478  long long __cil_tmp5 ;
 2479  unsigned long long __cil_tmp6 ;
 2480  unsigned long long __cil_tmp7 ;
 2481
 2482  {
 2483#line 1746
 2484  __cil_tmp4 = (unsigned long long )Multiplier;
 2485#line 1746
 2486  __cil_tmp5 = (long long )Multiplicand;
 2487#line 1746
 2488  __cil_tmp6 = (unsigned long long )__cil_tmp5;
 2489#line 1746
 2490  __cil_tmp7 = __cil_tmp6 * __cil_tmp4;
 2491#line 1746
 2492  Product.QuadPart = (long long )__cil_tmp7;
 2493#line 1747
 2494  return (Product);
 2495}
 2496}
 2497#line 1754 "C:/NTDDK/inc/ddk/ntddk.h"
 2498__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedUnsignedMultiply)(ULONG Multiplicand ,
 2499                                                                                   ULONG Multiplier ) 
 2500{ LARGE_INTEGER Product ;
 2501  unsigned long long __cil_tmp4 ;
 2502  unsigned long long __cil_tmp5 ;
 2503  unsigned long long __cil_tmp6 ;
 2504
 2505  {
 2506#line 1764
 2507  __cil_tmp4 = (unsigned long long )Multiplier;
 2508#line 1764
 2509  __cil_tmp5 = (unsigned long long )Multiplicand;
 2510#line 1764
 2511  __cil_tmp6 = __cil_tmp5 * __cil_tmp4;
 2512#line 1764
 2513  Product.QuadPart = (long long )__cil_tmp6;
 2514#line 1765
 2515  return (Product);
 2516}
 2517}
 2518#line 1772 "C:/NTDDK/inc/ddk/ntddk.h"
 2519__inline ULONG ( __attribute__((__stdcall__)) RtlEnlargedUnsignedDivide)(ULARGE_INTEGER Dividend ,
 2520                                                                         ULONG Divisor ,
 2521                                                                         PULONG Remainder ) 
 2522{ ULONG Quotient ;
 2523  unsigned long long __cil_tmp5 ;
 2524  ULONGLONG __cil_tmp6 ;
 2525  void *__cil_tmp7 ;
 2526  CHAR *__cil_tmp8 ;
 2527  unsigned int __cil_tmp9 ;
 2528  CHAR *__cil_tmp10 ;
 2529  unsigned int __cil_tmp11 ;
 2530  unsigned long long __cil_tmp12 ;
 2531  unsigned long long __cil_tmp13 ;
 2532
 2533  {
 2534#line 1783
 2535  __cil_tmp5 = (unsigned long long )Divisor;
 2536#line 1783
 2537  __cil_tmp6 = Dividend.QuadPart / __cil_tmp5;
 2538#line 1783
 2539  Quotient = (unsigned long )__cil_tmp6;
 2540  {
 2541#line 1784
 2542  __cil_tmp7 = (void *)0;
 2543#line 1784
 2544  __cil_tmp8 = (CHAR *)__cil_tmp7;
 2545#line 1784
 2546  __cil_tmp9 = (unsigned int )__cil_tmp8;
 2547#line 1784
 2548  __cil_tmp10 = (CHAR *)Remainder;
 2549#line 1784
 2550  __cil_tmp11 = (unsigned int )__cil_tmp10;
 2551#line 1784
 2552  if (__cil_tmp11 != __cil_tmp9) {
 2553#line 1786
 2554    __cil_tmp12 = (unsigned long long )Divisor;
 2555#line 1786
 2556    __cil_tmp13 = Dividend.QuadPart % __cil_tmp12;
 2557#line 1786
 2558    *Remainder = (unsigned long )__cil_tmp13;
 2559  } else {
 2560
 2561  }
 2562  }
 2563#line 1789
 2564  return (Quotient);
 2565}
 2566}
 2567#line 1796 "C:/NTDDK/inc/ddk/ntddk.h"
 2568__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerNegate)(LARGE_INTEGER Subtrahend ) 
 2569{ LARGE_INTEGER Difference ;
 2570
 2571  {
 2572#line 1805
 2573  Difference.QuadPart = - Subtrahend.QuadPart;
 2574#line 1806
 2575  return (Difference);
 2576}
 2577}
 2578#line 1813 "C:/NTDDK/inc/ddk/ntddk.h"
 2579__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerSubtract)(LARGE_INTEGER Minuend ,
 2580                                                                               LARGE_INTEGER Subtrahend ) 
 2581{ LARGE_INTEGER Difference ;
 2582
 2583  {
 2584#line 1823
 2585  Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
 2586#line 1824
 2587  return (Difference);
 2588}
 2589}
 2590#line 1953
 2591#pragma warning(push)
 2592#line 1955
 2593#pragma warning(disable:4035)
 2594#line 1960 "C:/NTDDK/inc/ddk/ntddk.h"
 2595__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertLongToLargeInteger)(LONG SignedInteger ) 
 2596{ LARGE_INTEGER stub ;
 2597
 2598  {
 2599#line 1971
 2600  return (stub);
 2601}
 2602}
 2603#line 1973 "C:/NTDDK/inc/ddk/ntddk.h"
 2604__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertUlongToLargeInteger)(ULONG UnsignedInteger ) 
 2605{ LARGE_INTEGER stub ;
 2606
 2607  {
 2608#line 1984
 2609  return (stub);
 2610}
 2611}
 2612#line 1986 "C:/NTDDK/inc/ddk/ntddk.h"
 2613__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftLeft)(LARGE_INTEGER LargeInteger ,
 2614                                                                                CCHAR ShiftCount ) 
 2615{ LARGE_INTEGER stub ;
 2616
 2617  {
 2618#line 2013
 2619  return (stub);
 2620}
 2621}
 2622#line 2015 "C:/NTDDK/inc/ddk/ntddk.h"
 2623__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftRight)(LARGE_INTEGER LargeInteger ,
 2624                                                                                 CCHAR ShiftCount ) 
 2625{ LARGE_INTEGER stub ;
 2626
 2627  {
 2628#line 2024
 2629  return (stub);
 2630}
 2631}
 2632#line 2026 "C:/NTDDK/inc/ddk/ntddk.h"
 2633__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerArithmeticShift)(LARGE_INTEGER LargeInteger ,
 2634                                                                                      CCHAR ShiftCount ) 
 2635{ LARGE_INTEGER stub ;
 2636
 2637  {
 2638#line 2035
 2639  return (stub);
 2640}
 2641}
 2642#line 2038
 2643#pragma warning(pop)
 2644#line 2796 "C:/NTDDK/inc/ddk/ntddk.h"
 2645__inline LUID ( __attribute__((__stdcall__)) RtlConvertLongToLuid)(LONG Long ) 
 2646{ LUID TempLuid ;
 2647  LARGE_INTEGER TempLi ;
 2648
 2649  {
 2650  {
 2651#line 2805
 2652  TempLi = RtlConvertLongToLargeInteger(Long);
 2653#line 2806
 2654  TempLuid.LowPart = TempLi.__annonCompField1.LowPart;
 2655#line 2807
 2656  TempLuid.HighPart = TempLi.__annonCompField1.HighPart;
 2657  }
 2658#line 2808
 2659  return (TempLuid);
 2660}
 2661}
 2662#line 2811 "C:/NTDDK/inc/ddk/ntddk.h"
 2663__inline LUID ( __attribute__((__stdcall__)) RtlConvertUlongToLuid)(ULONG Ulong ) 
 2664{ LUID TempLuid ;
 2665
 2666  {
 2667#line 2819
 2668  TempLuid.LowPart = Ulong;
 2669#line 2820
 2670  TempLuid.HighPart = 0L;
 2671#line 2821
 2672  return (TempLuid);
 2673}
 2674}
 2675#line 5211
 2676extern  __attribute__((__dllimport__)) LONG ( __attribute__((__fastcall__)) InterlockedExchange)(PLONG Target ,
 2677                                                                                                 LONG Value ) ;
 2678#line 5253
 2679#pragma warning(disable:4035)
 2680#line 5271 "C:/NTDDK/inc/ddk/ntddk.h"
 2681__inline ULONG KeGetCurrentProcessorNumber(void) 
 2682{ 
 2683
 2684  {
 2685#line 5274
 2686  return (0UL);
 2687}
 2688}
 2689#line 7015
 2690#pragma warning(push)
 2691#line 7017
 2692#pragma warning(disable:4164)
 2693#line 7020
 2694#pragma function(_enable)
 2695#line 7021
 2696#pragma function(_disable)
 2697#line 7025
 2698#pragma warning(pop)
 2699#line 25 "C:/NTDDK/inc/pshpack4.h"
 2700#pragma warning(disable:4103)
 2701#line 28 "C:/NTDDK/inc/poppack.h"
 2702#pragma warning(disable:4103)
 2703#line 25 "C:/NTDDK/inc/pshpack1.h"
 2704#pragma warning(disable:4103)
 2705#line 28 "C:/NTDDK/inc/poppack.h"
 2706#pragma warning(disable:4103)
 2707#line 9415 "C:/NTDDK/inc/ddk/ntddk.h"
 2708 __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type ,
 2709                                                       BOOLEAN State ) ;
 2710#line 9451
 2711 __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment ,
 2712                                                BOOLEAN Wait ) ;
 2713#line 9483
 2714 __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore ,
 2715                                                           LONG Count , LONG Limit ) ;
 2716#line 9497
 2717 __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment ,
 2718                                                        LONG Adjustment , BOOLEAN Wait ) ;
 2719#line 9506
 2720 __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode ,
 2721                                                                BOOLEAN Alertable ,
 2722                                                                PLARGE_INTEGER Interval ) ;
 2723#line 9527
 2724extern  __attribute__((__dllimport__)) KPRIORITY KeSetPriorityThread(PKTHREAD Thread ,
 2725                                                                     KPRIORITY Priority ) ;
 2726#line 9681
 2727 __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason ,
 2728                                                               KPROCESSOR_MODE WaitMode ,
 2729                                                               BOOLEAN Alertable ,
 2730                                                               PLARGE_INTEGER Timeout ) ;
 2731#line 9711
 2732 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ;
 2733#line 9737
 2734extern  __attribute__((__dllimport__)) KIRQL ( __attribute__((__fastcall__)) KfAcquireSpinLock)(PKSPIN_LOCK SpinLock ) ;
 2735#line 9744
 2736 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock ,
 2737                                                                                        KIRQL NewIrql ) ;
 2738#line 10159
 2739 __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType ,
 2740                                                                                            SIZE_T NumberOfBytes ,
 2741                                                                                            ULONG Tag ) ;
 2742#line 10236
 2743 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ;
 2744#line 10315
 2745 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ;
 2746#line 10322
 2747 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ;
 2748#line 10406
 2749 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
 2750                                                                                                          PLIST_ENTRY ListEntry ,
 2751                                                                                                          PKSPIN_LOCK Lock ) ;
 2752#line 10415
 2753 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
 2754                                                                                                          PLIST_ENTRY ListEntry ,
 2755                                                                                                          PKSPIN_LOCK Lock ) ;
 2756#line 10424
 2757 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
 2758                                                                                                          PKSPIN_LOCK Lock ) ;
 2759#line 10547
 2760extern  __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPopEntrySList)(PSLIST_HEADER ListHead ,
 2761                                                                                                                      PKSPIN_LOCK Lock ) ;
 2762#line 10555
 2763extern  __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPushEntrySList)(PSLIST_HEADER ListHead ,
 2764                                                                                                                       PSINGLE_LIST_ENTRY ListEntry ,
 2765                                                                                                                       PKSPIN_LOCK Lock ) ;
 2766#line 10643 "C:/NTDDK/inc/ddk/ntddk.h"
 2767__inline PVOID ExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside ) 
 2768{ PVOID Entry ;
 2769  PSINGLE_LIST_ENTRY tmp ;
 2770  unsigned int __cil_tmp4 ;
 2771  unsigned int __cil_tmp5 ;
 2772  unsigned int __cil_tmp6 ;
 2773  unsigned int __cil_tmp7 ;
 2774  unsigned int __cil_tmp8 ;
 2775  unsigned int __cil_tmp9 ;
 2776  ULONG __cil_tmp10 ;
 2777  SLIST_HEADER *__cil_tmp11 ;
 2778  unsigned int __cil_tmp12 ;
 2779  unsigned int __cil_tmp13 ;
 2780  KSPIN_LOCK *__cil_tmp14 ;
 2781  void *__cil_tmp15 ;
 2782  unsigned int __cil_tmp16 ;
 2783  unsigned int __cil_tmp17 ;
 2784  unsigned int __cil_tmp18 ;
 2785  unsigned int __cil_tmp19 ;
 2786  unsigned int __cil_tmp20 ;
 2787  unsigned int __cil_tmp21 ;
 2788  unsigned int __cil_tmp22 ;
 2789  unsigned int __cil_tmp23 ;
 2790  ULONG __cil_tmp24 ;
 2791  unsigned int __cil_tmp25 ;
 2792  unsigned int __cil_tmp26 ;
 2793  unsigned int __cil_tmp27 ;
 2794  PVOID (*__cil_tmp28)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 2795  unsigned int __cil_tmp29 ;
 2796  unsigned int __cil_tmp30 ;
 2797  unsigned int __cil_tmp31 ;
 2798  POOL_TYPE __cil_tmp32 ;
 2799  unsigned int __cil_tmp33 ;
 2800  unsigned int __cil_tmp34 ;
 2801  unsigned int __cil_tmp35 ;
 2802  ULONG __cil_tmp36 ;
 2803  unsigned int __cil_tmp37 ;
 2804  unsigned int __cil_tmp38 ;
 2805  unsigned int __cil_tmp39 ;
 2806  ULONG __cil_tmp40 ;
 2807  ULONG *mem_41 ;
 2808  ULONG *mem_42 ;
 2809  ULONG *mem_43 ;
 2810  ULONG *mem_44 ;
 2811  PVOID (**mem_45)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 2812  POOL_TYPE *mem_46 ;
 2813  ULONG *mem_47 ;
 2814  ULONG *mem_48 ;
 2815
 2816  {
 2817  {
 2818#line 10672
 2819  __cil_tmp4 = 0 + 12;
 2820#line 10672
 2821  __cil_tmp5 = (unsigned int )Lookaside;
 2822#line 10672
 2823  __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
 2824#line 10672
 2825  __cil_tmp7 = 0 + 12;
 2826#line 10672
 2827  __cil_tmp8 = (unsigned int )Lookaside;
 2828#line 10672
 2829  __cil_tmp9 = __cil_tmp8 + __cil_tmp7;
 2830#line 10672
 2831  mem_41 = (ULONG *)__cil_tmp9;
 2832#line 10672
 2833  __cil_tmp10 = *mem_41;
 2834#line 10672
 2835  mem_42 = (ULONG *)__cil_tmp6;
 2836#line 10672
 2837  *mem_42 = __cil_tmp10 + 1UL;
 2838#line 10673
 2839  __cil_tmp11 = (SLIST_HEADER *)Lookaside;
 2840#line 10673
 2841  __cil_tmp12 = (unsigned int )Lookaside;
 2842#line 10673
 2843  __cil_tmp13 = __cil_tmp12 + 100;
 2844#line 10673
 2845  __cil_tmp14 = (KSPIN_LOCK *)__cil_tmp13;
 2846#line 10673
 2847  tmp = ExInterlockedPopEntrySList(__cil_tmp11, __cil_tmp14);
 2848#line 10673
 2849  Entry = (void *)tmp;
 2850  }
 2851  {
 2852#line 10674
 2853  __cil_tmp15 = (void *)0;
 2854#line 10674
 2855  __cil_tmp16 = (unsigned int )__cil_tmp15;
 2856#line 10674
 2857  __cil_tmp17 = (unsigned int )Entry;
 2858#line 10674
 2859  if (__cil_tmp17 == __cil_tmp16) {
 2860    {
 2861#line 10675
 2862    __cil_tmp18 = 0 + 16;
 2863#line 10675
 2864    __cil_tmp19 = (unsigned int )Lookaside;
 2865#line 10675
 2866    __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
 2867#line 10675
 2868    __cil_tmp21 = 0 + 16;
 2869#line 10675
 2870    __cil_tmp22 = (unsigned int )Lookaside;
 2871#line 10675
 2872    __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
 2873#line 10675
 2874    mem_43 = (ULONG *)__cil_tmp23;
 2875#line 10675
 2876    __cil_tmp24 = *mem_43;
 2877#line 10675
 2878    mem_44 = (ULONG *)__cil_tmp20;
 2879#line 10675
 2880    *mem_44 = __cil_tmp24 + 1UL;
 2881#line 10676
 2882    __cil_tmp25 = 0 + 68;
 2883#line 10676
 2884    __cil_tmp26 = (unsigned int )Lookaside;
 2885#line 10676
 2886    __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
 2887#line 10676
 2888    mem_45 = (PVOID (**)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ))__cil_tmp27;
 2889#line 10676
 2890    __cil_tmp28 = *mem_45;
 2891#line 10676
 2892    __cil_tmp29 = 0 + 28;
 2893#line 10676
 2894    __cil_tmp30 = (unsigned int )Lookaside;
 2895#line 10676
 2896    __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 2897#line 10676
 2898    mem_46 = (POOL_TYPE *)__cil_tmp31;
 2899#line 10676
 2900    __cil_tmp32 = *mem_46;
 2901#line 10676
 2902    __cil_tmp33 = 0 + 64;
 2903#line 10676
 2904    __cil_tmp34 = (unsigned int )Lookaside;
 2905#line 10676
 2906    __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
 2907#line 10676
 2908    mem_47 = (ULONG *)__cil_tmp35;
 2909#line 10676
 2910    __cil_tmp36 = *mem_47;
 2911#line 10676
 2912    __cil_tmp37 = 0 + 60;
 2913#line 10676
 2914    __cil_tmp38 = (unsigned int )Lookaside;
 2915#line 10676
 2916    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
 2917#line 10676
 2918    mem_48 = (ULONG *)__cil_tmp39;
 2919#line 10676
 2920    __cil_tmp40 = *mem_48;
 2921#line 10676
 2922    Entry = (*__cil_tmp28)(__cil_tmp32, __cil_tmp36, __cil_tmp40);
 2923    }
 2924  } else {
 2925
 2926  }
 2927  }
 2928#line 10681
 2929  return (Entry);
 2930}
 2931}
 2932#line 10684 "C:/NTDDK/inc/ddk/ntddk.h"
 2933__inline void ExFreeToNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry ) 
 2934{ unsigned int __cil_tmp3 ;
 2935  unsigned int __cil_tmp4 ;
 2936  unsigned int __cil_tmp5 ;
 2937  unsigned int __cil_tmp6 ;
 2938  unsigned int __cil_tmp7 ;
 2939  unsigned int __cil_tmp8 ;
 2940  ULONG __cil_tmp9 ;
 2941  unsigned int __cil_tmp10 ;
 2942  unsigned int __cil_tmp11 ;
 2943  unsigned int __cil_tmp12 ;
 2944  USHORT __cil_tmp13 ;
 2945  int __cil_tmp14 ;
 2946  unsigned int __cil_tmp15 ;
 2947  unsigned int __cil_tmp16 ;
 2948  unsigned int __cil_tmp17 ;
 2949  unsigned int __cil_tmp18 ;
 2950  unsigned int __cil_tmp19 ;
 2951  USHORT __cil_tmp20 ;
 2952  int __cil_tmp21 ;
 2953  unsigned int __cil_tmp22 ;
 2954  unsigned int __cil_tmp23 ;
 2955  unsigned int __cil_tmp24 ;
 2956  unsigned int __cil_tmp25 ;
 2957  unsigned int __cil_tmp26 ;
 2958  unsigned int __cil_tmp27 ;
 2959  ULONG __cil_tmp28 ;
 2960  unsigned int __cil_tmp29 ;
 2961  unsigned int __cil_tmp30 ;
 2962  unsigned int __cil_tmp31 ;
 2963  void (*__cil_tmp32)(PVOID Buffer ) ;
 2964  SLIST_HEADER *__cil_tmp33 ;
 2965  struct _SINGLE_LIST_ENTRY *__cil_tmp34 ;
 2966  unsigned int __cil_tmp35 ;
 2967  unsigned int __cil_tmp36 ;
 2968  KSPIN_LOCK *__cil_tmp37 ;
 2969  ULONG *mem_38 ;
 2970  ULONG *mem_39 ;
 2971  USHORT *mem_40 ;
 2972  USHORT *mem_41 ;
 2973  ULONG *mem_42 ;
 2974  ULONG *mem_43 ;
 2975  void (**mem_44)(PVOID Buffer ) ;
 2976
 2977  {
 2978#line 10713
 2979  __cil_tmp3 = 0 + 20;
 2980#line 10713
 2981  __cil_tmp4 = (unsigned int )Lookaside;
 2982#line 10713
 2983  __cil_tmp5 = __cil_tmp4 + __cil_tmp3;
 2984#line 10713
 2985  __cil_tmp6 = 0 + 20;
 2986#line 10713
 2987  __cil_tmp7 = (unsigned int )Lookaside;
 2988#line 10713
 2989  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
 2990#line 10713
 2991  mem_38 = (ULONG *)__cil_tmp8;
 2992#line 10713
 2993  __cil_tmp9 = *mem_38;
 2994#line 10713
 2995  mem_39 = (ULONG *)__cil_tmp5;
 2996#line 10713
 2997  *mem_39 = __cil_tmp9 + 1UL;
 2998  {
 2999#line 10714
 3000  __cil_tmp10 = 0 + 8;
 3001#line 10714
 3002  __cil_tmp11 = (unsigned int )Lookaside;
 3003#line 10714
 3004  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 3005#line 10714
 3006  mem_40 = (USHORT *)__cil_tmp12;
 3007#line 10714
 3008  __cil_tmp13 = *mem_40;
 3009#line 10714
 3010  __cil_tmp14 = (int )__cil_tmp13;
 3011#line 10714
 3012  __cil_tmp15 = 0 + 4;
 3013#line 10714
 3014  __cil_tmp16 = 0 + __cil_tmp15;
 3015#line 10714
 3016  __cil_tmp17 = 0 + __cil_tmp16;
 3017#line 10714
 3018  __cil_tmp18 = (unsigned int )Lookaside;
 3019#line 10714
 3020  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
 3021#line 10714
 3022  mem_41 = (USHORT *)__cil_tmp19;
 3023#line 10714
 3024  __cil_tmp20 = *mem_41;
 3025#line 10714
 3026  __cil_tmp21 = (int )__cil_tmp20;
 3027#line 10714
 3028  if (__cil_tmp21 >= __cil_tmp14) {
 3029    {
 3030#line 10715
 3031    __cil_tmp22 = 0 + 24;
 3032#line 10715
 3033    __cil_tmp23 = (unsigned int )Lookaside;
 3034#line 10715
 3035    __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
 3036#line 10715
 3037    __cil_tmp25 = 0 + 24;
 3038#line 10715
 3039    __cil_tmp26 = (unsigned int )Lookaside;
 3040#line 10715
 3041    __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
 3042#line 10715
 3043    mem_42 = (ULONG *)__cil_tmp27;
 3044#line 10715
 3045    __cil_tmp28 = *mem_42;
 3046#line 10715
 3047    mem_43 = (ULONG *)__cil_tmp24;
 3048#line 10715
 3049    *mem_43 = __cil_tmp28 + 1UL;
 3050#line 10716
 3051    __cil_tmp29 = 0 + 72;
 3052#line 10716
 3053    __cil_tmp30 = (unsigned int )Lookaside;
 3054#line 10716
 3055    __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 3056#line 10716
 3057    mem_44 = (void (**)(PVOID Buffer ))__cil_tmp31;
 3058#line 10716
 3059    __cil_tmp32 = *mem_44;
 3060#line 10716
 3061    (*__cil_tmp32)(Entry);
 3062    }
 3063  } else {
 3064    {
 3065#line 10719
 3066    __cil_tmp33 = (SLIST_HEADER *)Lookaside;
 3067#line 10719
 3068    __cil_tmp34 = (struct _SINGLE_LIST_ENTRY *)Entry;
 3069#line 10719
 3070    __cil_tmp35 = (unsigned int )Lookaside;
 3071#line 10719
 3072    __cil_tmp36 = __cil_tmp35 + 100;
 3073#line 10719
 3074    __cil_tmp37 = (KSPIN_LOCK *)__cil_tmp36;
 3075#line 10719
 3076    ExInterlockedPushEntrySList(__cil_tmp33, __cil_tmp34, __cil_tmp37);
 3077    }
 3078  }
 3079  }
 3080#line 10726
 3081  return;
 3082}
 3083}
 3084#line 11906
 3085extern  __attribute__((__dllimport__)) void MmProbeAndLockPages(PMDL MemoryDescriptorList ,
 3086                                                                KPROCESSOR_MODE AccessMode ,
 3087                                                                LOCK_OPERATION Operation ) ;
 3088#line 11915
 3089 __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ;
 3090#line 11979
 3091 __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList ,
 3092                                                                   KPROCESSOR_MODE AccessMode ,
 3093                                                                   MEMORY_CACHING_TYPE CacheType ,
 3094                                                                   PVOID BaseAddress ,
 3095                                                                   ULONG BugCheckOnFailure ,
 3096                                                                   MM_PAGE_PRIORITY Priority ) ;
 3097#line 12084
 3098 __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes ,
 3099                                                                 PHYSICAL_ADDRESS HighestAcceptableAddress ) ;
 3100#line 12101
 3101 __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ;
 3102#line 12172
 3103 __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ;
 3104#line 12179
 3105 __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ;
 3106#line 12552
 3107 __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle ,
 3108                                                              ULONG DesiredAccess ,
 3109                                                              POBJECT_ATTRIBUTES ObjectAttributes ,
 3110                                                              HANDLE ProcessHandle ,
 3111                                                              PCLIENT_ID ClientId ,
 3112                                                              void (*StartRoutine)(PVOID StartContext ) ,
 3113                                                              PVOID StartContext ) ;
 3114#line 12564
 3115 __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ;
 3116#line 25 "C:/NTDDK/inc/pshpack4.h"
 3117#pragma warning(disable:4103)
 3118#line 28 "C:/NTDDK/inc/poppack.h"
 3119#pragma warning(disable:4103)
 3120#line 14734 "C:/NTDDK/inc/ddk/ntddk.h"
 3121 __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length ,
 3122                                                   BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota ,
 3123                                                   PIRP Irp ) ;
 3124#line 14807
 3125 __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice ,
 3126                                                                           PDEVICE_OBJECT TargetDevice ) ;
 3127#line 14814
 3128 __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction ,
 3129                                                                   PDEVICE_OBJECT DeviceObject ,
 3130                                                                   PVOID Buffer ,
 3131                                                                   ULONG Length ,
 3132                                                                   PLARGE_INTEGER StartingOffset ,
 3133                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
 3134#line 14825
 3135 __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode ,
 3136                                                                   PDEVICE_OBJECT DeviceObject ,
 3137                                                                   PVOID InputBuffer ,
 3138                                                                   ULONG InputBufferLength ,
 3139                                                                   PVOID OutputBuffer ,
 3140                                                                   ULONG OutputBufferLength ,
 3141                                                                   BOOLEAN InternalDeviceIoControl ,
 3142                                                                   PKEVENT Event ,
 3143                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
 3144#line 14875
 3145 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
 3146                                                                                        PIRP Irp ) ;
 3147#line 14903
 3148 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp ,
 3149                                                                                         CCHAR PriorityBoost ) ;
 3150#line 14942
 3151 __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject ,
 3152                                                        ULONG DeviceExtensionSize ,
 3153                                                        PUNICODE_STRING DeviceName ,
 3154                                                        ULONG DeviceType , ULONG DeviceCharacteristics ,
 3155                                                        BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ;
 3156#line 14993
 3157 __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName ,
 3158                                                              PUNICODE_STRING DeviceName ) ;
 3159#line 15057
 3160 __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ;
 3161#line 15063
 3162 __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ;
 3163#line 15069
 3164 __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ;
 3165#line 15092
 3166 __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ;
 3167#line 15098
 3168 __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ;
 3169#line 15110
 3170 __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ;
 3171#line 15234
 3172extern  __attribute__((__dllimport__)) void IoGetStackLimits(PULONG_PTR LowLimit ,
 3173                                                             PULONG_PTR HighLimit ) ;
 3174#line 15246 "C:/NTDDK/inc/ddk/ntddk.h"
 3175__inline ULONG_PTR IoGetRemainingStackSize(void) 
 3176{ ULONG_PTR Top ;
 3177  ULONG_PTR Bottom ;
 3178  ULONG_PTR *__cil_tmp3 ;
 3179  ULONG_PTR __cil_tmp4 ;
 3180  unsigned long __cil_tmp5 ;
 3181
 3182  {
 3183  {
 3184#line 15255
 3185  IoGetStackLimits(& Bottom, & Top);
 3186  }
 3187  {
 3188#line 15256
 3189  __cil_tmp3 = & Bottom;
 3190#line 15256
 3191  __cil_tmp4 = *__cil_tmp3;
 3192#line 15256
 3193  __cil_tmp5 = (unsigned long )(& Top);
 3194#line 15256
 3195  return (__cil_tmp5 - __cil_tmp4);
 3196  }
 3197}
 3198}
 3199#line 15426
 3200 __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType ,
 3201                                                                  PULONG BusNumber ,
 3202                                                                  PCONFIGURATION_TYPE ControllerType ,
 3203                                                                  PULONG ControllerNumber ,
 3204                                                                  PCONFIGURATION_TYPE PeripheralType ,
 3205                                                                  PULONG PeripheralNumber ,
 3206                                                                  NTSTATUS (*CalloutRoutine)(PVOID Context ,
 3207                                                                                             PUNICODE_STRING PathName ,
 3208                                                                                             INTERFACE_TYPE BusType ,
 3209                                                                                             ULONG BusNumber ,
 3210                                                                                             PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 3211                                                                                             CONFIGURATION_TYPE ControllerType ,
 3212                                                                                             ULONG ControllerNumber ,
 3213                                                                                             PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
 3214                                                                                             CONFIGURATION_TYPE PeripheralType ,
 3215                                                                                             ULONG PeripheralNumber ,
 3216                                                                                             PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
 3217                                                                  PVOID Context ) ;
 3218#line 15492
 3219 __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ;
 3220#line 15641
 3221 __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ;
 3222#line 16436
 3223 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
 3224                                                                                                   GUID const   *InterfaceClassGuid ,
 3225                                                                                                   PUNICODE_STRING ReferenceString ,
 3226                                                                                                   PUNICODE_STRING SymbolicLinkName ) ;
 3227#line 16456
 3228 __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName ,
 3229                                                                   BOOLEAN Enable ) ;
 3230#line 17779
 3231#pragma warning(disable:4200)
 3232#line 17785
 3233#pragma warning(default:4200)
 3234#line 18271
 3235 __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject ,
 3236                                                      PIRP Irp ) ;
 3237#line 18278
 3238 __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ;
 3239#line 18326
 3240 __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle ,
 3241                                                                   ACCESS_MASK DesiredAccess ,
 3242                                                                   POBJECT_TYPE ObjectType ,
 3243                                                                   KPROCESSOR_MODE AccessMode ,
 3244                                                                   PVOID *Object ,
 3245                                                                   POBJECT_HANDLE_INFORMATION HandleInformation ) ;
 3246#line 18359
 3247 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ;
 3248#line 19155
 3249 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ;
 3250#line 25 "C:/NTDDK/inc/pshpack1.h"
 3251#pragma warning(disable:4103)
 3252#line 28 "C:/NTDDK/inc/poppack.h"
 3253#pragma warning(disable:4103)
 3254#line 25 "C:/NTDDK/inc/pshpack1.h"
 3255#pragma warning(disable:4103)
 3256#line 28 "C:/NTDDK/inc/poppack.h"
 3257#pragma warning(disable:4103)
 3258#line 25 "C:/NTDDK/inc/pshpack1.h"
 3259#pragma warning(disable:4103)
 3260#line 28 "C:/NTDDK/inc/poppack.h"
 3261#pragma warning(disable:4103)
 3262#line 25 "C:/NTDDK/inc/pshpack1.h"
 3263#pragma warning(disable:4103)
 3264#line 28 "C:/NTDDK/inc/poppack.h"
 3265#pragma warning(disable:4103)
 3266#line 25 "C:/NTDDK/inc/pshpack1.h"
 3267#pragma warning(disable:4103)
 3268#line 28 "C:/NTDDK/inc/poppack.h"
 3269#pragma warning(disable:4103)
 3270#line 212 "C:/NTDDK/inc/mountmgr.h"
 3271 __attribute__((__selectany__)) struct _GUID  const  MOUNTDEV_MOUNTED_DEVICE_GUID  =    {1408590605UL,
 3272    (unsigned short)46783, (unsigned short)4560, {(unsigned char)148, (unsigned char)242,
 3273                                                  (unsigned char)0, (unsigned char)160,
 3274                                                  (unsigned char)201, (unsigned char)30,
 3275                                                  (unsigned char)251, (unsigned char)139}};
 3276#line 265 "./flo_data.h"
 3277DRIVE_MEDIA_LIMITS _DriveMediaLimits[5]  = {      {(DRIVE_MEDIA_TYPE )4, (DRIVE_MEDIA_TYPE )0}, 
 3278        {(DRIVE_MEDIA_TYPE )11, (DRIVE_MEDIA_TYPE )6}, 
 3279        {(DRIVE_MEDIA_TYPE )5, (DRIVE_MEDIA_TYPE )5}, 
 3280        {(DRIVE_MEDIA_TYPE )13, (DRIVE_MEDIA_TYPE )12}, 
 3281        {(DRIVE_MEDIA_TYPE )16, (DRIVE_MEDIA_TYPE )14}};
 3282#line 282 "./flo_data.h"
 3283DRIVE_MEDIA_LIMITS_NEC98 _DriveMediaLimits_NEC98[6]  = {      {(DRIVE_MEDIA_TYPE_NEC98 )4, (DRIVE_MEDIA_TYPE_NEC98 )0}, 
 3284        {(DRIVE_MEDIA_TYPE_NEC98 )13, (DRIVE_MEDIA_TYPE_NEC98 )5}, 
 3285        {(DRIVE_MEDIA_TYPE_NEC98 )11, (DRIVE_MEDIA_TYPE_NEC98 )5}, 
 3286        {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, 
 3287        {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, 
 3288        {(DRIVE_MEDIA_TYPE_NEC98 )20, (DRIVE_MEDIA_TYPE_NEC98 )19}};
 3289#line 292 "./flo_data.h"
 3290PDRIVE_MEDIA_LIMITS DriveMediaLimits  ;
 3291#line 334 "./flo_data.h"
 3292DRIVE_MEDIA_CONSTANTS _DriveMediaConstants[17]  = 
 3293#line 334
 3294  {      {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3295      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3296      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3297      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3298      (unsigned char)254, (unsigned char)0}, 
 3299        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3300      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3301      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3302      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3303      (unsigned char)252, (unsigned char)0}, 
 3304        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3305      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3306      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3307      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3308      (unsigned char)255, (unsigned char)0}, 
 3309        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3310      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3311      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3312      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3313      (unsigned char)255, (unsigned char)0}, 
 3314        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3315      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3316      (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
 3317      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3318      (unsigned char)253, (unsigned char)0}, 
 3319        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3320      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3321      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3322      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3323      (unsigned char)249, (unsigned char)2}, 
 3324        {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3325      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3326      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3327      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
 3328      (unsigned char)254, (unsigned char)0}, 
 3329        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3330      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3331      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3332      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
 3333      (unsigned char)252, (unsigned char)0}, 
 3334        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3335      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3336      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3337      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3338      (unsigned char)255, (unsigned char)0}, 
 3339        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3340      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3341      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3342      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3343      (unsigned char)255, (unsigned char)0}, 
 3344        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3345      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3346      (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
 3347      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3348      (unsigned char)253, (unsigned char)0}, 
 3349        {(MEDIA_TYPE )1, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3350      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3351      (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
 3352      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3353      (unsigned char)249, (unsigned char)0}, 
 3354        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3355      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3356      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3357      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3358      (unsigned char)249, (unsigned char)2}, 
 3359        {(MEDIA_TYPE )2, (unsigned char)175, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3360      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
 3361      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3362      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3363      (unsigned char)240, (unsigned char)3}, 
 3364        {(MEDIA_TYPE )5, (unsigned char)225, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3365      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3366      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3367      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3368      (unsigned char)249, (unsigned char)2}, 
 3369        {(MEDIA_TYPE )2, (unsigned char)209, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3370      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
 3371      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3372      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3373      (unsigned char)240, (unsigned char)3}, 
 3374        {(MEDIA_TYPE )3, (unsigned char)161, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3375      (unsigned short)512, (unsigned char)36, (unsigned char)56, (unsigned char)83,
 3376      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3377      (unsigned char)79, (unsigned char)0, (unsigned char)3, (unsigned char)2, (unsigned char)255,
 3378      (unsigned char)240, (unsigned char)6}};
 3379#line 358 "./flo_data.h"
 3380DRIVE_MEDIA_CONSTANTS _DriveMediaConstants_NEC98[21]  = 
 3381#line 358
 3382  {      {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3383      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3384      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3385      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3386      (unsigned char)254, (unsigned char)0}, 
 3387        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3388      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3389      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3390      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3391      (unsigned char)252, (unsigned char)0}, 
 3392        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3393      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3394      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3395      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3396      (unsigned char)255, (unsigned char)0}, 
 3397        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3398      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3399      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3400      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3401      (unsigned char)255, (unsigned char)0}, 
 3402        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3403      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3404      (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
 3405      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3406      (unsigned char)253, (unsigned char)0}, 
 3407        {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3408      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3409      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3410      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3411      (unsigned char)254, (unsigned char)0}, 
 3412        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3413      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3414      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3415      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3416      (unsigned char)252, (unsigned char)0}, 
 3417        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3418      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3419      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3420      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3421      (unsigned char)255, (unsigned char)0}, 
 3422        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)3,
 3423      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3424      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3425      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3426      (unsigned char)255, (unsigned char)0}, 
 3427        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3428      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3429      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3430      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3431      (unsigned char)253, (unsigned char)0}, 
 3432        {(MEDIA_TYPE )15, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3433      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3434      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3435      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3436      (unsigned char)251, (unsigned char)0}, 
 3437        {(MEDIA_TYPE )16, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3438      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3439      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3440      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3441      (unsigned char)249, (unsigned char)2}, 
 3442        {(MEDIA_TYPE )1, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3443      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3444      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3445      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3446      (unsigned char)249, (unsigned char)0}, 
 3447        {(MEDIA_TYPE )19, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
 3448      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3449      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3450      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3451      (unsigned char)254, (unsigned char)0}, 
 3452        {(MEDIA_TYPE )14, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3453      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3454      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3455      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3456      (unsigned char)251, (unsigned char)0}, 
 3457        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3458      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3459      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3460      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3461      (unsigned char)249, (unsigned char)2}, 
 3462        {(MEDIA_TYPE )17, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3463      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3464      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3465      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3466      (unsigned char)249, (unsigned char)0}, 
 3467        {(MEDIA_TYPE )18, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
 3468      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3469      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3470      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3471      (unsigned char)254, (unsigned char)0}, 
 3472        {(MEDIA_TYPE )2, (unsigned char)223, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3473      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)108,
 3474      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3475      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3476      (unsigned char)240, (unsigned char)3}, 
 3477        {(MEDIA_TYPE )1, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)2,
 3478      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3479      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3480      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3481      (unsigned char)249, (unsigned char)0}, 
 3482        {(MEDIA_TYPE )19, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)3,
 3483      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3484      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3485      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3486      (unsigned char)254, (unsigned char)0}};
 3487#line 399 "./flo_data.h"
 3488PDRIVE_MEDIA_CONSTANTS DriveMediaConstants  ;
 3489#line 595 "./flo_data.h"
 3490SENSE_DEVISE_STATUS_PTOS Result_Status3_PTOS[4]  ;
 3491#line 603
 3492NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ;
 3493#line 609
 3494void FloppyUnload(PDRIVER_OBJECT DriverObject ) ;
 3495#line 614
 3496NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
 3497                          ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 3498                          CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
 3499                          PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
 3500                          ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ;
 3501#line 629
 3502NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) ;
 3503#line 634
 3504NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3505#line 640
 3506NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3507#line 646
 3508NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3509#line 652
 3510NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) ;
 3511#line 657
 3512NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) ;
 3513#line 662
 3514NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation ,
 3515                      BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) ;
 3516#line 671
 3517void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
 3518#line 677
 3519NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) ;
 3520#line 682
 3521void FloppyThread(PVOID Context ) ;
 3522#line 687
 3523NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) ;
 3524#line 694
 3525NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
 3526#line 700
 3527NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer ,
 3528                        PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) ;
 3529#line 710
 3530BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) ;
 3531#line 724
 3532NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
 3533#line 730
 3534NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) ;
 3535#line 736
 3536void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) ;
 3537#line 742
 3538void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) ;
 3539#line 747
 3540void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension ,
 3541                                          PBOOT_SECTOR_INFO BootSector ) ;
 3542#line 753
 3543void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) ;
 3544#line 758
 3545NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset ,
 3546                          BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector ,
 3547                          UCHAR NumberOfSectors , BOOLEAN NeedSeek ) ;
 3548#line 771
 3549NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) ;
 3550#line 778
 3551NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) ;
 3552#line 784
 3553NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3554#line 790
 3555NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3556#line 796
 3557NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 3558#line 803
 3559NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
 3560#line 809
 3561NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3562#line 815
 3563void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) ;
 3564#line 820
 3565void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3566#line 826
 3567NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) ;
 3568#line 832
 3569NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) ;
 3570#line 47 "floppy.c"
 3571#pragma alloc_text(INIT,DriverEntry)
 3572#line 49
 3573#pragma alloc_text(PAGE,FloppyAddDevice)
 3574#line 50
 3575#pragma alloc_text(PAGE,FloppyPnp)
 3576#line 51
 3577#pragma alloc_text(PAGE,FloppyPower)
 3578#line 52
 3579#pragma alloc_text(PAGE,FlConfigCallBack)
 3580#line 53
 3581#pragma alloc_text(PAGE,FlInitializeControllerHardware)
 3582#line 54
 3583#pragma alloc_text(PAGE,FlInterpretError)
 3584#line 55
 3585#pragma alloc_text(PAGE,FlDatarateSpecifyConfigure)
 3586#line 56
 3587#pragma alloc_text(PAGE,FlRecalibrateDrive)
 3588#line 57
 3589#pragma alloc_text(PAGE,FlDetermineMediaType)
 3590#line 58
 3591#pragma alloc_text(PAGE,FlCheckBootSector)
 3592#line 59
 3593#pragma alloc_text(PAGE,FlConsolidateMediaTypeWithBootSector)
 3594#line 60
 3595#pragma alloc_text(PAGE,FlIssueCommand)
 3596#line 61
 3597#pragma alloc_text(PAGE,FlReadWriteTrack)
 3598#line 62
 3599#pragma alloc_text(PAGE,FlReadWrite)
 3600#line 63
 3601#pragma alloc_text(PAGE,FlFormat)
 3602#line 64
 3603#pragma alloc_text(PAGE,FlFinishOperation)
 3604#line 65
 3605#pragma alloc_text(PAGE,FlStartDrive)
 3606#line 66
 3607#pragma alloc_text(PAGE,FloppyThread)
 3608#line 67
 3609#pragma alloc_text(PAGE,FlAllocateIoBuffer)
 3610#line 68
 3611#pragma alloc_text(PAGE,FlFreeIoBuffer)
 3612#line 69
 3613#pragma alloc_text(PAGE,FloppyCreateClose)
 3614#line 70
 3615#pragma alloc_text(PAGE,FloppyDeviceControl)
 3616#line 71
 3617#pragma alloc_text(PAGE,FloppyReadWrite)
 3618#line 72
 3619#pragma alloc_text(PAGE,FlCheckFormatParameters)
 3620#line 73
 3621#pragma alloc_text(PAGE,FlFdcDeviceIo)
 3622#line 74
 3623#pragma alloc_text(PAGE,FlHdbit)
 3624#line 101 "floppy.c"
 3625NTSTATUS myStatus  ;
 3626#line 103 "floppy.c"
 3627int s  ;
 3628#line 105 "floppy.c"
 3629int pended  ;
 3630#line 106 "floppy.c"
 3631NTSTATUS (*compFptr)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context )  ;
 3632#line 107 "floppy.c"
 3633int compRegistered  ;
 3634#line 108 "floppy.c"
 3635int lowerDriverReturn  ;
 3636#line 109 "floppy.c"
 3637int setEventCalled  ;
 3638#line 110 "floppy.c"
 3639int customIrp  ;
 3640#line 135 "floppy.c"
 3641ULONG PagingReferenceCount  =    0UL;
 3642#line 136 "floppy.c"
 3643PFAST_MUTEX PagingMutex  =    (struct _FAST_MUTEX *)((void *)0);
 3644#line 139 "floppy.c"
 3645NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) 
 3646{ NTSTATUS ntStatus ;
 3647  PVOID tmp ;
 3648  unsigned int __cil_tmp5 ;
 3649  unsigned int __cil_tmp6 ;
 3650  unsigned int __cil_tmp7 ;
 3651  unsigned int __cil_tmp8 ;
 3652  unsigned int __cil_tmp9 ;
 3653  unsigned int __cil_tmp10 ;
 3654  unsigned int __cil_tmp11 ;
 3655  unsigned int __cil_tmp12 ;
 3656  unsigned int __cil_tmp13 ;
 3657  unsigned int __cil_tmp14 ;
 3658  unsigned int __cil_tmp15 ;
 3659  unsigned int __cil_tmp16 ;
 3660  unsigned int __cil_tmp17 ;
 3661  unsigned int __cil_tmp18 ;
 3662  unsigned int __cil_tmp19 ;
 3663  unsigned int __cil_tmp20 ;
 3664  unsigned int __cil_tmp21 ;
 3665  unsigned int __cil_tmp22 ;
 3666  unsigned int __cil_tmp23 ;
 3667  unsigned int __cil_tmp24 ;
 3668  unsigned int __cil_tmp25 ;
 3669  unsigned int __cil_tmp26 ;
 3670  unsigned int __cil_tmp27 ;
 3671  unsigned int __cil_tmp28 ;
 3672  unsigned int __cil_tmp29 ;
 3673  unsigned int __cil_tmp30 ;
 3674  unsigned int __cil_tmp31 ;
 3675  unsigned int __cil_tmp32 ;
 3676  unsigned int __cil_tmp33 ;
 3677  unsigned int __cil_tmp34 ;
 3678  unsigned int __cil_tmp35 ;
 3679  unsigned int __cil_tmp36 ;
 3680  PDRIVER_EXTENSION __cil_tmp37 ;
 3681  unsigned int __cil_tmp38 ;
 3682  unsigned int __cil_tmp39 ;
 3683  enum _POOL_TYPE __cil_tmp40 ;
 3684  unsigned long __cil_tmp41 ;
 3685  void *__cil_tmp42 ;
 3686  unsigned int __cil_tmp43 ;
 3687  unsigned int __cil_tmp44 ;
 3688  unsigned int __cil_tmp45 ;
 3689  unsigned int __cil_tmp46 ;
 3690  unsigned int __cil_tmp47 ;
 3691  unsigned int __cil_tmp48 ;
 3692  KEVENT *__cil_tmp49 ;
 3693  enum _EVENT_TYPE __cil_tmp50 ;
 3694  void *__cil_tmp51 ;
 3695  KUSER_SHARED_DATA *__cil_tmp52 ;
 3696  unsigned int __cil_tmp53 ;
 3697  unsigned int __cil_tmp54 ;
 3698  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp55 ;
 3699  int __cil_tmp56 ;
 3700  unsigned int __cil_tmp57 ;
 3701  unsigned int __cil_tmp58 ;
 3702  DRIVE_MEDIA_LIMITS_NEC98 *__cil_tmp59 ;
 3703  unsigned int __cil_tmp60 ;
 3704  unsigned int __cil_tmp61 ;
 3705  KUSER_SHARED_DATA *__cil_tmp62 ;
 3706  unsigned int __cil_tmp63 ;
 3707  unsigned int __cil_tmp64 ;
 3708  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp65 ;
 3709  int __cil_tmp66 ;
 3710  unsigned int __cil_tmp67 ;
 3711  unsigned int __cil_tmp68 ;
 3712  unsigned int __cil_tmp69 ;
 3713  unsigned int __cil_tmp70 ;
 3714  PDRIVER_DISPATCH *mem_71 ;
 3715  PDRIVER_DISPATCH *mem_72 ;
 3716  PDRIVER_DISPATCH *mem_73 ;
 3717  PDRIVER_DISPATCH *mem_74 ;
 3718  PDRIVER_DISPATCH *mem_75 ;
 3719  PDRIVER_DISPATCH *mem_76 ;
 3720  PDRIVER_DISPATCH *mem_77 ;
 3721  void (**mem_78)(struct _DRIVER_OBJECT *DriverObject ) ;
 3722  PDRIVER_EXTENSION *mem_79 ;
 3723  NTSTATUS (**mem_80)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
 3724  LONG *mem_81 ;
 3725  ULONG *mem_82 ;
 3726  ALTERNATIVE_ARCHITECTURE_TYPE *mem_83 ;
 3727  ALTERNATIVE_ARCHITECTURE_TYPE *mem_84 ;
 3728
 3729  {
 3730#line 170
 3731  ntStatus = 0L;
 3732  {
 3733#line 242
 3734  while (1) {
 3735    while_0_continue: /* CIL Label */ ;
 3736    goto while_0_break;
 3737  }
 3738  while_0_break: /* CIL Label */ ;
 3739  }
 3740  {
 3741#line 247
 3742  __cil_tmp5 = 0 * 4U;
 3743#line 247
 3744  __cil_tmp6 = 56 + __cil_tmp5;
 3745#line 247
 3746  __cil_tmp7 = (unsigned int )DriverObject;
 3747#line 247
 3748  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
 3749#line 247
 3750  mem_71 = (PDRIVER_DISPATCH *)__cil_tmp8;
 3751#line 247
 3752  *mem_71 = & FloppyCreateClose;
 3753#line 248
 3754  __cil_tmp9 = 2 * 4U;
 3755#line 248
 3756  __cil_tmp10 = 56 + __cil_tmp9;
 3757#line 248
 3758  __cil_tmp11 = (unsigned int )DriverObject;
 3759#line 248
 3760  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 3761#line 248
 3762  mem_72 = (PDRIVER_DISPATCH *)__cil_tmp12;
 3763#line 248
 3764  *mem_72 = & FloppyCreateClose;
 3765#line 249
 3766  __cil_tmp13 = 3 * 4U;
 3767#line 249
 3768  __cil_tmp14 = 56 + __cil_tmp13;
 3769#line 249
 3770  __cil_tmp15 = (unsigned int )DriverObject;
 3771#line 249
 3772  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
 3773#line 249
 3774  mem_73 = (PDRIVER_DISPATCH *)__cil_tmp16;
 3775#line 249
 3776  *mem_73 = & FloppyReadWrite;
 3777#line 250
 3778  __cil_tmp17 = 4 * 4U;
 3779#line 250
 3780  __cil_tmp18 = 56 + __cil_tmp17;
 3781#line 250
 3782  __cil_tmp19 = (unsigned int )DriverObject;
 3783#line 250
 3784  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
 3785#line 250
 3786  mem_74 = (PDRIVER_DISPATCH *)__cil_tmp20;
 3787#line 250
 3788  *mem_74 = & FloppyReadWrite;
 3789#line 251
 3790  __cil_tmp21 = 14 * 4U;
 3791#line 251
 3792  __cil_tmp22 = 56 + __cil_tmp21;
 3793#line 251
 3794  __cil_tmp23 = (unsigned int )DriverObject;
 3795#line 251
 3796  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
 3797#line 251
 3798  mem_75 = (PDRIVER_DISPATCH *)__cil_tmp24;
 3799#line 251
 3800  *mem_75 = & FloppyDeviceControl;
 3801#line 252
 3802  __cil_tmp25 = 27 * 4U;
 3803#line 252
 3804  __cil_tmp26 = 56 + __cil_tmp25;
 3805#line 252
 3806  __cil_tmp27 = (unsigned int )DriverObject;
 3807#line 252
 3808  __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
 3809#line 252
 3810  mem_76 = (PDRIVER_DISPATCH *)__cil_tmp28;
 3811#line 252
 3812  *mem_76 = & FloppyPnp;
 3813#line 253
 3814  __cil_tmp29 = 22 * 4U;
 3815#line 253
 3816  __cil_tmp30 = 56 + __cil_tmp29;
 3817#line 253
 3818  __cil_tmp31 = (unsigned int )DriverObject;
 3819#line 253
 3820  __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
 3821#line 253
 3822  mem_77 = (PDRIVER_DISPATCH *)__cil_tmp32;
 3823#line 253
 3824  *mem_77 = & FloppyPower;
 3825#line 255
 3826  __cil_tmp33 = (unsigned int )DriverObject;
 3827#line 255
 3828  __cil_tmp34 = __cil_tmp33 + 52;
 3829#line 255
 3830  mem_78 = (void (**)(struct _DRIVER_OBJECT *DriverObject ))__cil_tmp34;
 3831#line 255
 3832  *mem_78 = & FloppyUnload;
 3833#line 257
 3834  __cil_tmp35 = (unsigned int )DriverObject;
 3835#line 257
 3836  __cil_tmp36 = __cil_tmp35 + 24;
 3837#line 257
 3838  mem_79 = (PDRIVER_EXTENSION *)__cil_tmp36;
 3839#line 257
 3840  __cil_tmp37 = *mem_79;
 3841#line 257
 3842  __cil_tmp38 = (unsigned int )__cil_tmp37;
 3843#line 257
 3844  __cil_tmp39 = __cil_tmp38 + 4;
 3845#line 257
 3846  mem_80 = (NTSTATUS (**)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ))__cil_tmp39;
 3847#line 257
 3848  *mem_80 = & FloppyAddDevice;
 3849#line 262
 3850  __cil_tmp40 = (enum _POOL_TYPE )0;
 3851#line 262
 3852  __cil_tmp41 = (unsigned long )32U;
 3853#line 262
 3854  tmp = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp41, 1886350406UL);
 3855#line 262
 3856  PagingMutex = (struct _FAST_MUTEX *)tmp;
 3857  }
 3858  {
 3859#line 264
 3860  __cil_tmp42 = (void *)0;
 3861#line 264
 3862  __cil_tmp43 = (unsigned int )__cil_tmp42;
 3863#line 264
 3864  __cil_tmp44 = (unsigned int )PagingMutex;
 3865#line 264
 3866  if (__cil_tmp44 == __cil_tmp43) {
 3867#line 266
 3868    return (-1073741670L);
 3869  } else {
 3870
 3871  }
 3872  }
 3873  {
 3874#line 269
 3875  mem_81 = (LONG *)PagingMutex;
 3876#line 269
 3877  *mem_81 = 1L;
 3878#line 269
 3879  __cil_tmp45 = (unsigned int )PagingMutex;
 3880#line 269
 3881  __cil_tmp46 = __cil_tmp45 + 8;
 3882#line 269
 3883  mem_82 = (ULONG *)__cil_tmp46;
 3884#line 269
 3885  *mem_82 = 0UL;
 3886#line 269
 3887  __cil_tmp47 = (unsigned int )PagingMutex;
 3888#line 269
 3889  __cil_tmp48 = __cil_tmp47 + 12;
 3890#line 269
 3891  __cil_tmp49 = (KEVENT *)__cil_tmp48;
 3892#line 269
 3893  __cil_tmp50 = (enum _EVENT_TYPE )1;
 3894#line 269
 3895  KeInitializeEvent(__cil_tmp49, __cil_tmp50, (unsigned char)0);
 3896#line 274
 3897  __cil_tmp51 = (void *)(& DriverEntry);
 3898#line 274
 3899  MmPageEntireDriver(__cil_tmp51);
 3900  }
 3901  {
 3902#line 276
 3903  __cil_tmp52 = (KUSER_SHARED_DATA * const  )4292804608U;
 3904#line 276
 3905  __cil_tmp53 = (unsigned int )__cil_tmp52;
 3906#line 276
 3907  __cil_tmp54 = __cil_tmp53 + 732;
 3908#line 276
 3909  mem_83 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp54;
 3910#line 276
 3911  __cil_tmp55 = *mem_83;
 3912#line 276
 3913  __cil_tmp56 = (int )__cil_tmp55;
 3914#line 276
 3915  if (__cil_tmp56 == 1) {
 3916#line 276
 3917    __cil_tmp57 = 0 * 64U;
 3918#line 276
 3919    __cil_tmp58 = (unsigned int )(_DriveMediaLimits_NEC98) + __cil_tmp57;
 3920#line 276
 3921    __cil_tmp59 = (DRIVE_MEDIA_LIMITS_NEC98 *)__cil_tmp58;
 3922#line 276
 3923    DriveMediaLimits = (struct _DRIVE_MEDIA_LIMITS *)__cil_tmp59;
 3924  } else {
 3925#line 276
 3926    __cil_tmp60 = 0 * 64U;
 3927#line 276
 3928    __cil_tmp61 = (unsigned int )(_DriveMediaLimits) + __cil_tmp60;
 3929#line 276
 3930    DriveMediaLimits = (DRIVE_MEDIA_LIMITS *)__cil_tmp61;
 3931  }
 3932  }
 3933  {
 3934#line 279
 3935  __cil_tmp62 = (KUSER_SHARED_DATA * const  )4292804608U;
 3936#line 279
 3937  __cil_tmp63 = (unsigned int )__cil_tmp62;
 3938#line 279
 3939  __cil_tmp64 = __cil_tmp63 + 732;
 3940#line 279
 3941  mem_84 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp64;
 3942#line 279
 3943  __cil_tmp65 = *mem_84;
 3944#line 279
 3945  __cil_tmp66 = (int )__cil_tmp65;
 3946#line 279
 3947  if (__cil_tmp66 == 1) {
 3948#line 279
 3949    __cil_tmp67 = 0 * 56U;
 3950#line 279
 3951    __cil_tmp68 = (unsigned int )(_DriveMediaConstants_NEC98) + __cil_tmp67;
 3952#line 279
 3953    DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp68;
 3954  } else {
 3955#line 279
 3956    __cil_tmp69 = 0 * 56U;
 3957#line 279
 3958    __cil_tmp70 = (unsigned int )(_DriveMediaConstants) + __cil_tmp69;
 3959#line 279
 3960    DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp70;
 3961  }
 3962  }
 3963#line 282
 3964  return (ntStatus);
 3965}
 3966}
 3967#line 285 "floppy.c"
 3968void FloppyUnload(PDRIVER_OBJECT DriverObject ) 
 3969{ void *__cil_tmp2 ;
 3970
 3971  {
 3972  {
 3973#line 308
 3974  while (1) {
 3975    while_1_continue: /* CIL Label */ ;
 3976    goto while_1_break;
 3977  }
 3978  while_1_break: /* CIL Label */ ;
 3979  }
 3980  {
 3981#line 318
 3982  __cil_tmp2 = (void *)PagingMutex;
 3983#line 318
 3984  ExFreePool(__cil_tmp2);
 3985  }
 3986#line 322
 3987  return;
 3988}
 3989}
 3990#line 323 "floppy.c"
 3991NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) 
 3992{ NTSTATUS ntStatus ;
 3993  PDEVICE_OBJECT deviceObject ;
 3994  PDISKETTE_EXTENSION disketteExtension ;
 3995  FDC_INFO fdcInfo ;
 3996  UCHAR arcNameBuffer[256] ;
 3997  STRING arcNameString ;
 3998  WCHAR deviceNameBuffer[20] ;
 3999  UNICODE_STRING deviceName ;
 4000  USHORT i ;
 4001  USHORT tmp ;
 4002  PVOID tmp___0 ;
 4003  PCONFIGURATION_INFORMATION tmp___1 ;
 4004  unsigned int __cil_tmp15 ;
 4005  unsigned int __cil_tmp16 ;
 4006  int __cil_tmp17 ;
 4007  int __cil_tmp18 ;
 4008  int __cil_tmp19 ;
 4009  int __cil_tmp20 ;
 4010  unsigned long __cil_tmp21 ;
 4011  void *__cil_tmp22 ;
 4012  int __cil_tmp23 ;
 4013  int __cil_tmp24 ;
 4014  unsigned int __cil_tmp25 ;
 4015  unsigned int __cil_tmp26 ;
 4016  WCHAR *__cil_tmp27 ;
 4017  wchar_t const   *__cil_tmp28 ;
 4018  unsigned int __cil_tmp29 ;
 4019  unsigned int __cil_tmp30 ;
 4020  WCHAR *__cil_tmp31 ;
 4021  WCHAR const   *__cil_tmp32 ;
 4022  unsigned long __cil_tmp33 ;
 4023  int __cil_tmp34 ;
 4024  PDEVICE_OBJECT *__cil_tmp35 ;
 4025  PDEVICE_OBJECT __cil_tmp36 ;
 4026  unsigned int __cil_tmp37 ;
 4027  unsigned int __cil_tmp38 ;
 4028  PVOID __cil_tmp39 ;
 4029  enum _POOL_TYPE __cil_tmp40 ;
 4030  UNICODE_STRING *__cil_tmp41 ;
 4031  USHORT __cil_tmp42 ;
 4032  unsigned long __cil_tmp43 ;
 4033  unsigned int __cil_tmp44 ;
 4034  unsigned int __cil_tmp45 ;
 4035  unsigned int __cil_tmp46 ;
 4036  void *__cil_tmp47 ;
 4037  unsigned int __cil_tmp48 ;
 4038  unsigned int __cil_tmp49 ;
 4039  unsigned int __cil_tmp50 ;
 4040  unsigned int __cil_tmp51 ;
 4041  PWSTR __cil_tmp52 ;
 4042  unsigned int __cil_tmp53 ;
 4043  PDEVICE_OBJECT *__cil_tmp54 ;
 4044  PDEVICE_OBJECT __cil_tmp55 ;
 4045  unsigned int __cil_tmp56 ;
 4046  unsigned int __cil_tmp57 ;
 4047  unsigned int __cil_tmp58 ;
 4048  unsigned int __cil_tmp59 ;
 4049  unsigned int __cil_tmp60 ;
 4050  UNICODE_STRING *__cil_tmp61 ;
 4051  unsigned int __cil_tmp62 ;
 4052  unsigned int __cil_tmp63 ;
 4053  UNICODE_STRING *__cil_tmp64 ;
 4054  unsigned int __cil_tmp65 ;
 4055  unsigned int __cil_tmp66 ;
 4056  unsigned int __cil_tmp67 ;
 4057  unsigned int __cil_tmp68 ;
 4058  ULONG __cil_tmp69 ;
 4059  unsigned int __cil_tmp70 ;
 4060  unsigned int __cil_tmp71 ;
 4061  UCHAR *__cil_tmp72 ;
 4062  char *__cil_tmp73 ;
 4063  unsigned int __cil_tmp74 ;
 4064  ULONG __cil_tmp75 ;
 4065  unsigned int __cil_tmp76 ;
 4066  ULONG __cil_tmp77 ;
 4067  unsigned int __cil_tmp78 ;
 4068  ULONG __cil_tmp79 ;
 4069  unsigned int __cil_tmp80 ;
 4070  unsigned int __cil_tmp81 ;
 4071  UCHAR *__cil_tmp82 ;
 4072  char const   *__cil_tmp83 ;
 4073  unsigned int __cil_tmp84 ;
 4074  unsigned int __cil_tmp85 ;
 4075  UNICODE_STRING *__cil_tmp86 ;
 4076  unsigned int __cil_tmp87 ;
 4077  unsigned int __cil_tmp88 ;
 4078  UNICODE_STRING *__cil_tmp89 ;
 4079  PDEVICE_OBJECT *__cil_tmp90 ;
 4080  PDEVICE_OBJECT __cil_tmp91 ;
 4081  unsigned int __cil_tmp92 ;
 4082  unsigned int __cil_tmp93 ;
 4083  PDEVICE_OBJECT *__cil_tmp94 ;
 4084  PDEVICE_OBJECT __cil_tmp95 ;
 4085  unsigned int __cil_tmp96 ;
 4086  unsigned int __cil_tmp97 ;
 4087  ULONG __cil_tmp98 ;
 4088  PDEVICE_OBJECT *__cil_tmp99 ;
 4089  PDEVICE_OBJECT __cil_tmp100 ;
 4090  unsigned int __cil_tmp101 ;
 4091  unsigned int __cil_tmp102 ;
 4092  ULONG __cil_tmp103 ;
 4093  PDEVICE_OBJECT *__cil_tmp104 ;
 4094  PDEVICE_OBJECT __cil_tmp105 ;
 4095  unsigned int __cil_tmp106 ;
 4096  unsigned int __cil_tmp107 ;
 4097  PDEVICE_OBJECT *__cil_tmp108 ;
 4098  PDEVICE_OBJECT __cil_tmp109 ;
 4099  unsigned int __cil_tmp110 ;
 4100  unsigned int __cil_tmp111 ;
 4101  PDEVICE_OBJECT *__cil_tmp112 ;
 4102  PDEVICE_OBJECT __cil_tmp113 ;
 4103  unsigned int __cil_tmp114 ;
 4104  unsigned int __cil_tmp115 ;
 4105  ULONG __cil_tmp116 ;
 4106  unsigned int __cil_tmp117 ;
 4107  unsigned int __cil_tmp118 ;
 4108  unsigned int __cil_tmp119 ;
 4109  unsigned int __cil_tmp120 ;
 4110  unsigned int __cil_tmp121 ;
 4111  unsigned int __cil_tmp122 ;
 4112  PDEVICE_OBJECT *__cil_tmp123 ;
 4113  PDEVICE_OBJECT __cil_tmp124 ;
 4114  unsigned int __cil_tmp125 ;
 4115  unsigned int __cil_tmp126 ;
 4116  KSEMAPHORE *__cil_tmp127 ;
 4117  unsigned int __cil_tmp128 ;
 4118  unsigned int __cil_tmp129 ;
 4119  unsigned int __cil_tmp130 ;
 4120  unsigned int __cil_tmp131 ;
 4121  unsigned int __cil_tmp132 ;
 4122  unsigned int __cil_tmp133 ;
 4123  unsigned int __cil_tmp134 ;
 4124  unsigned int __cil_tmp135 ;
 4125  KEVENT *__cil_tmp136 ;
 4126  enum _EVENT_TYPE __cil_tmp137 ;
 4127  unsigned int __cil_tmp138 ;
 4128  unsigned int __cil_tmp139 ;
 4129  KSPIN_LOCK *__cil_tmp140 ;
 4130  unsigned int __cil_tmp141 ;
 4131  unsigned int __cil_tmp142 ;
 4132  unsigned int __cil_tmp143 ;
 4133  unsigned int __cil_tmp144 ;
 4134  unsigned int __cil_tmp145 ;
 4135  unsigned int __cil_tmp146 ;
 4136  unsigned int __cil_tmp147 ;
 4137  unsigned int __cil_tmp148 ;
 4138  KEVENT *__cil_tmp149 ;
 4139  enum _EVENT_TYPE __cil_tmp150 ;
 4140  unsigned int __cil_tmp151 ;
 4141  unsigned int __cil_tmp152 ;
 4142  unsigned int __cil_tmp153 ;
 4143  unsigned int __cil_tmp154 ;
 4144  unsigned int __cil_tmp155 ;
 4145  unsigned int __cil_tmp156 ;
 4146  unsigned int __cil_tmp157 ;
 4147  unsigned int __cil_tmp158 ;
 4148  KEVENT *__cil_tmp159 ;
 4149  enum _EVENT_TYPE __cil_tmp160 ;
 4150  unsigned int __cil_tmp161 ;
 4151  unsigned int __cil_tmp162 ;
 4152  unsigned int __cil_tmp163 ;
 4153  unsigned int __cil_tmp164 ;
 4154  unsigned int __cil_tmp165 ;
 4155  unsigned int __cil_tmp166 ;
 4156  unsigned int __cil_tmp167 ;
 4157  unsigned int __cil_tmp168 ;
 4158  unsigned int __cil_tmp169 ;
 4159  unsigned int __cil_tmp170 ;
 4160  unsigned int __cil_tmp171 ;
 4161  unsigned int __cil_tmp172 ;
 4162  unsigned int __cil_tmp173 ;
 4163  unsigned int __cil_tmp174 ;
 4164  unsigned int __cil_tmp175 ;
 4165  unsigned int __cil_tmp176 ;
 4166  unsigned int __cil_tmp177 ;
 4167  unsigned int __cil_tmp178 ;
 4168  unsigned int __cil_tmp179 ;
 4169  unsigned int __cil_tmp180 ;
 4170  unsigned int __cil_tmp181 ;
 4171  unsigned int __cil_tmp182 ;
 4172  unsigned int __cil_tmp183 ;
 4173  unsigned int __cil_tmp184 ;
 4174  unsigned int __cil_tmp185 ;
 4175  unsigned int __cil_tmp186 ;
 4176  unsigned int __cil_tmp187 ;
 4177  unsigned int __cil_tmp188 ;
 4178  unsigned int __cil_tmp189 ;
 4179  unsigned int __cil_tmp190 ;
 4180  KSPIN_LOCK *__cil_tmp191 ;
 4181  KSPIN_LOCK *__cil_tmp192 ;
 4182  unsigned int __cil_tmp193 ;
 4183  unsigned int __cil_tmp194 ;
 4184  unsigned int __cil_tmp195 ;
 4185  unsigned int __cil_tmp196 ;
 4186  unsigned int __cil_tmp197 ;
 4187  unsigned int __cil_tmp198 ;
 4188  PDEVICE_OBJECT *__cil_tmp199 ;
 4189  unsigned int __cil_tmp200 ;
 4190  unsigned int __cil_tmp201 ;
 4191  unsigned int __cil_tmp202 ;
 4192  unsigned int __cil_tmp203 ;
 4193  KUSER_SHARED_DATA *__cil_tmp204 ;
 4194  unsigned int __cil_tmp205 ;
 4195  unsigned int __cil_tmp206 ;
 4196  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp207 ;
 4197  int __cil_tmp208 ;
 4198  unsigned int __cil_tmp209 ;
 4199  unsigned int __cil_tmp210 ;
 4200  unsigned int __cil_tmp211 ;
 4201  unsigned int __cil_tmp212 ;
 4202  ULONG *mem_213 ;
 4203  ULONG *mem_214 ;
 4204  PVOID *mem_215 ;
 4205  USHORT *mem_216 ;
 4206  PWSTR *mem_217 ;
 4207  PWSTR *mem_218 ;
 4208  USHORT *mem_219 ;
 4209  USHORT *mem_220 ;
 4210  USHORT *mem_221 ;
 4211  ULONG *mem_222 ;
 4212  ULONG *mem_223 ;
 4213  ULONG *mem_224 ;
 4214  ULONG *mem_225 ;
 4215  ULONG *mem_226 ;
 4216  ULONG *mem_227 ;
 4217  ULONG *mem_228 ;
 4218  ULONG *mem_229 ;
 4219  ULONG *mem_230 ;
 4220  ULONG *mem_231 ;
 4221  ULONG *mem_232 ;
 4222  PDRIVER_OBJECT *mem_233 ;
 4223  PDEVICE_OBJECT *mem_234 ;
 4224  PDEVICE_OBJECT *mem_235 ;
 4225  LONG *mem_236 ;
 4226  ULONG *mem_237 ;
 4227  LONG *mem_238 ;
 4228  ULONG *mem_239 ;
 4229  LONG *mem_240 ;
 4230  ULONG *mem_241 ;
 4231  struct _LIST_ENTRY **mem_242 ;
 4232  struct _LIST_ENTRY **mem_243 ;
 4233  struct _LIST_ENTRY **mem_244 ;
 4234  LONG *mem_245 ;
 4235  BOOLEAN *mem_246 ;
 4236  BOOLEAN *mem_247 ;
 4237  BOOLEAN *mem_248 ;
 4238  struct _LIST_ENTRY **mem_249 ;
 4239  struct _LIST_ENTRY **mem_250 ;
 4240  struct _LIST_ENTRY **mem_251 ;
 4241  BOOLEAN *mem_252 ;
 4242  BOOLEAN *mem_253 ;
 4243  PDEVICE_OBJECT *mem_254 ;
 4244  BOOLEAN *mem_255 ;
 4245  MEDIA_TYPE *mem_256 ;
 4246  ALTERNATIVE_ARCHITECTURE_TYPE *mem_257 ;
 4247  BOOLEAN *mem_258 ;
 4248  BOOLEAN *mem_259 ;
 4249
 4250  {
 4251#line 363
 4252  ntStatus = 0L;
 4253  {
 4254#line 365
 4255  while (1) {
 4256    while_2_continue: /* CIL Label */ ;
 4257    goto while_2_break;
 4258  }
 4259  while_2_break: /* CIL Label */ ;
 4260  }
 4261  {
 4262#line 370
 4263  __cil_tmp15 = (unsigned int )(& fdcInfo) + 128;
 4264#line 370
 4265  mem_213 = (ULONG *)__cil_tmp15;
 4266#line 370
 4267  *mem_213 = 0UL;
 4268#line 371
 4269  __cil_tmp16 = (unsigned int )(& fdcInfo) + 132;
 4270#line 371
 4271  mem_214 = (ULONG *)__cil_tmp16;
 4272#line 371
 4273  *mem_214 = 0UL;
 4274#line 373
 4275  __cil_tmp17 = 770 << 2;
 4276#line 373
 4277  __cil_tmp18 = 7 << 16;
 4278#line 373
 4279  __cil_tmp19 = __cil_tmp18 | __cil_tmp17;
 4280#line 373
 4281  __cil_tmp20 = __cil_tmp19 | 3;
 4282#line 373
 4283  __cil_tmp21 = (unsigned long )__cil_tmp20;
 4284#line 373
 4285  __cil_tmp22 = (void *)(& fdcInfo);
 4286#line 373
 4287  ntStatus = FlFdcDeviceIo(PhysicalDeviceObject, __cil_tmp21, __cil_tmp22);
 4288  }
 4289#line 377
 4290  if (ntStatus >= 0L) {
 4291#line 379
 4292    i = (unsigned short)0;
 4293    {
 4294#line 385
 4295    while (1) {
 4296      while_3_continue: /* CIL Label */ ;
 4297      {
 4298#line 387
 4299      tmp = i;
 4300#line 387
 4301      __cil_tmp23 = (int )i;
 4302#line 387
 4303      __cil_tmp24 = __cil_tmp23 + 1;
 4304#line 387
 4305      i = (unsigned short )__cil_tmp24;
 4306#line 387
 4307      __cil_tmp25 = 0 * 2U;
 4308#line 387
 4309      __cil_tmp26 = (unsigned int )(deviceNameBuffer) + __cil_tmp25;
 4310#line 387
 4311      __cil_tmp27 = (WCHAR *)__cil_tmp26;
 4312#line 387
 4313      __cil_tmp28 = (wchar_t const   *)"\\\000D\000e\000v\000i\000c\000e\000\\\000F\000l\000o\000p\000p\000y\000%\000d\000";
 4314#line 387
 4315      swprintf(__cil_tmp27, __cil_tmp28, tmp);
 4316#line 388
 4317      __cil_tmp29 = 0 * 2U;
 4318#line 388
 4319      __cil_tmp30 = (unsigned int )(deviceNameBuffer) + __cil_tmp29;
 4320#line 388
 4321      __cil_tmp31 = (WCHAR *)__cil_tmp30;
 4322#line 388
 4323      __cil_tmp32 = (WCHAR const   *)__cil_tmp31;
 4324#line 388
 4325      RtlInitUnicodeString(& deviceName, __cil_tmp32);
 4326#line 389
 4327      __cil_tmp33 = (unsigned long )460U;
 4328#line 389
 4329      ntStatus = IoCreateDevice(DriverObject, __cil_tmp33, & deviceName, 7UL, 261UL,
 4330                                (unsigned char)0, & deviceObject);
 4331      }
 4332      {
 4333#line 385
 4334      __cil_tmp34 = ntStatus == -1073741771L;
 4335#line 385
 4336      if (! __cil_tmp34) {
 4337        goto while_3_break;
 4338      } else {
 4339
 4340      }
 4341      }
 4342    }
 4343    while_3_break: /* CIL Label */ ;
 4344    }
 4345#line 401
 4346    if (ntStatus >= 0L) {
 4347#line 403
 4348      __cil_tmp35 = & deviceObject;
 4349#line 403
 4350      __cil_tmp36 = *__cil_tmp35;
 4351#line 403
 4352      __cil_tmp37 = (unsigned int )__cil_tmp36;
 4353#line 403
 4354      __cil_tmp38 = __cil_tmp37 + 40;
 4355#line 403
 4356      mem_215 = (PVOID *)__cil_tmp38;
 4357#line 403
 4358      __cil_tmp39 = *mem_215;
 4359#line 403
 4360      disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp39;
 4361      {
 4362#line 409
 4363      while (1) {
 4364        while_4_continue: /* CIL Label */ ;
 4365        goto while_4_break;
 4366      }
 4367      while_4_break: /* CIL Label */ ;
 4368      }
 4369      {
 4370#line 411
 4371      __cil_tmp40 = (enum _POOL_TYPE )1;
 4372#line 411
 4373      __cil_tmp41 = & deviceName;
 4374#line 411
 4375      mem_216 = (USHORT *)__cil_tmp41;
 4376#line 411
 4377      __cil_tmp42 = *mem_216;
 4378#line 411
 4379      __cil_tmp43 = (unsigned long )__cil_tmp42;
 4380#line 411
 4381      tmp___0 = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp43, 1886350406UL);
 4382#line 411
 4383      __cil_tmp44 = 368 + 4;
 4384#line 411
 4385      __cil_tmp45 = (unsigned int )disketteExtension;
 4386#line 411
 4387      __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
 4388#line 411
 4389      mem_217 = (PWSTR *)__cil_tmp46;
 4390#line 411
 4391      *mem_217 = (WCHAR *)tmp___0;
 4392      }
 4393      {
 4394#line 412
 4395      __cil_tmp47 = (void *)0;
 4396#line 412
 4397      __cil_tmp48 = (unsigned int )__cil_tmp47;
 4398#line 412
 4399      __cil_tmp49 = 368 + 4;
 4400#line 412
 4401      __cil_tmp50 = (unsigned int )disketteExtension;
 4402#line 412
 4403      __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
 4404#line 412
 4405      mem_218 = (PWSTR *)__cil_tmp51;
 4406#line 412
 4407      __cil_tmp52 = *mem_218;
 4408#line 412
 4409      __cil_tmp53 = (unsigned int )__cil_tmp52;
 4410#line 412
 4411      if (__cil_tmp53 == __cil_tmp48) {
 4412        {
 4413#line 414
 4414        __cil_tmp54 = & deviceObject;
 4415#line 414
 4416        __cil_tmp55 = *__cil_tmp54;
 4417#line 414
 4418        IoDeleteDevice(__cil_tmp55);
 4419        }
 4420#line 415
 4421        return (-1073741670L);
 4422      } else {
 4423
 4424      }
 4425      }
 4426      {
 4427#line 417
 4428      __cil_tmp56 = (unsigned int )disketteExtension;
 4429#line 417
 4430      __cil_tmp57 = __cil_tmp56 + 368;
 4431#line 417
 4432      mem_219 = (USHORT *)__cil_tmp57;
 4433#line 417
 4434      *mem_219 = (unsigned short)0;
 4435#line 418
 4436      __cil_tmp58 = 368 + 2;
 4437#line 418
 4438      __cil_tmp59 = (unsigned int )disketteExtension;
 4439#line 418
 4440      __cil_tmp60 = __cil_tmp59 + __cil_tmp58;
 4441#line 418
 4442      __cil_tmp61 = & deviceName;
 4443#line 418
 4444      mem_220 = (USHORT *)__cil_tmp60;
 4445#line 418
 4446      mem_221 = (USHORT *)__cil_tmp61;
 4447#line 418
 4448      *mem_220 = *mem_221;
 4449#line 419
 4450      __cil_tmp62 = (unsigned int )disketteExtension;
 4451#line 419
 4452      __cil_tmp63 = __cil_tmp62 + 368;
 4453#line 419
 4454      __cil_tmp64 = (UNICODE_STRING *)__cil_tmp63;
 4455#line 419
 4456      RtlCopyUnicodeString(__cil_tmp64, & deviceName);
 4457#line 421
 4458      tmp___1 = IoGetConfigurationInformation();
 4459#line 421
 4460      __cil_tmp65 = (unsigned int )tmp___1;
 4461#line 421
 4462      __cil_tmp66 = __cil_tmp65 + 4;
 4463#line 421
 4464      __cil_tmp67 = (unsigned int )tmp___1;
 4465#line 421
 4466      __cil_tmp68 = __cil_tmp67 + 4;
 4467#line 421
 4468      mem_222 = (ULONG *)__cil_tmp68;
 4469#line 421
 4470      __cil_tmp69 = *mem_222;
 4471#line 421
 4472      mem_223 = (ULONG *)__cil_tmp66;
 4473#line 421
 4474      *mem_223 = __cil_tmp69 + 1UL;
 4475#line 429
 4476      __cil_tmp70 = 0 * 1U;
 4477#line 429
 4478      __cil_tmp71 = (unsigned int )(arcNameBuffer) + __cil_tmp70;
 4479#line 429
 4480      __cil_tmp72 = (UCHAR *)__cil_tmp71;
 4481#line 429
 4482      __cil_tmp73 = (char *)__cil_tmp72;
 4483#line 429
 4484      __cil_tmp74 = (unsigned int )(& fdcInfo) + 40;
 4485#line 429
 4486      mem_224 = (ULONG *)__cil_tmp74;
 4487#line 429
 4488      __cil_tmp75 = *mem_224;
 4489#line 429
 4490      __cil_tmp76 = (unsigned int )(& fdcInfo) + 44;
 4491#line 429
 4492      mem_225 = (ULONG *)__cil_tmp76;
 4493#line 429
 4494      __cil_tmp77 = *mem_225;
 4495#line 429
 4496      __cil_tmp78 = (unsigned int )(& fdcInfo) + 48;
 4497#line 429
 4498      mem_226 = (ULONG *)__cil_tmp78;
 4499#line 429
 4500      __cil_tmp79 = *mem_226;
 4501#line 429
 4502      sprintf(__cil_tmp73, "%s(%d)disk(%d)fdisk(%d)", "\\ArcName\\multi", __cil_tmp75,
 4503              __cil_tmp77, __cil_tmp79);
 4504#line 436
 4505      __cil_tmp80 = 0 * 1U;
 4506#line 436
 4507      __cil_tmp81 = (unsigned int )(arcNameBuffer) + __cil_tmp80;
 4508#line 436
 4509      __cil_tmp82 = (UCHAR *)__cil_tmp81;
 4510#line 436
 4511      __cil_tmp83 = (char const   *)__cil_tmp82;
 4512#line 436
 4513      RtlInitString(& arcNameString, __cil_tmp83);
 4514#line 438
 4515      __cil_tmp84 = (unsigned int )disketteExtension;
 4516#line 438
 4517      __cil_tmp85 = __cil_tmp84 + 384;
 4518#line 438
 4519      __cil_tmp86 = (UNICODE_STRING *)__cil_tmp85;
 4520#line 438
 4521      ntStatus = RtlAnsiStringToUnicodeString(__cil_tmp86, & arcNameString, (unsigned char)1);
 4522      }
 4523#line 442
 4524      if (ntStatus >= 0L) {
 4525        {
 4526#line 444
 4527        __cil_tmp87 = (unsigned int )disketteExtension;
 4528#line 444
 4529        __cil_tmp88 = __cil_tmp87 + 384;
 4530#line 444
 4531        __cil_tmp89 = (UNICODE_STRING *)__cil_tmp88;
 4532#line 444
 4533        IoCreateSymbolicLink(__cil_tmp89, & deviceName);
 4534        }
 4535      } else {
 4536
 4537      }
 4538#line 447
 4539      __cil_tmp90 = & deviceObject;
 4540#line 447
 4541      __cil_tmp91 = *__cil_tmp90;
 4542#line 447
 4543      __cil_tmp92 = (unsigned int )__cil_tmp91;
 4544#line 447
 4545      __cil_tmp93 = __cil_tmp92 + 28;
 4546#line 447
 4547      __cil_tmp94 = & deviceObject;
 4548#line 447
 4549      __cil_tmp95 = *__cil_tmp94;
 4550#line 447
 4551      __cil_tmp96 = (unsigned int )__cil_tmp95;
 4552#line 447
 4553      __cil_tmp97 = __cil_tmp96 + 28;
 4554#line 447
 4555      mem_227 = (ULONG *)__cil_tmp97;
 4556#line 447
 4557      __cil_tmp98 = *mem_227;
 4558#line 447
 4559      mem_228 = (ULONG *)__cil_tmp93;
 4560#line 447
 4561      *mem_228 = __cil_tmp98 | 8208UL;
 4562      {
 4563#line 449
 4564      __cil_tmp99 = & deviceObject;
 4565#line 449
 4566      __cil_tmp100 = *__cil_tmp99;
 4567#line 449
 4568      __cil_tmp101 = (unsigned int )__cil_tmp100;
 4569#line 449
 4570      __cil_tmp102 = __cil_tmp101 + 92;
 4571#line 449
 4572      mem_229 = (ULONG *)__cil_tmp102;
 4573#line 449
 4574      __cil_tmp103 = *mem_229;
 4575#line 449
 4576      if (__cil_tmp103 < 1UL) {
 4577#line 451
 4578        __cil_tmp104 = & deviceObject;
 4579#line 451
 4580        __cil_tmp105 = *__cil_tmp104;
 4581#line 451
 4582        __cil_tmp106 = (unsigned int )__cil_tmp105;
 4583#line 451
 4584        __cil_tmp107 = __cil_tmp106 + 92;
 4585#line 451
 4586        mem_230 = (ULONG *)__cil_tmp107;
 4587#line 451
 4588        *mem_230 = 1UL;
 4589      } else {
 4590
 4591      }
 4592      }
 4593#line 454
 4594      __cil_tmp108 = & deviceObject;
 4595#line 454
 4596      __cil_tmp109 = *__cil_tmp108;
 4597#line 454
 4598      __cil_tmp110 = (unsigned int )__cil_tmp109;
 4599#line 454
 4600      __cil_tmp111 = __cil_tmp110 + 28;
 4601#line 454
 4602      __cil_tmp112 = & deviceObject;
 4603#line 454
 4604      __cil_tmp113 = *__cil_tmp112;
 4605#line 454
 4606      __cil_tmp114 = (unsigned int )__cil_tmp113;
 4607#line 454
 4608      __cil_tmp115 = __cil_tmp114 + 28;
 4609#line 454
 4610      mem_231 = (ULONG *)__cil_tmp115;
 4611#line 454
 4612      __cil_tmp116 = *mem_231;
 4613#line 454
 4614      mem_232 = (ULONG *)__cil_tmp111;
 4615#line 454
 4616      *mem_232 = __cil_tmp116 & 4294967167UL;
 4617#line 456
 4618      __cil_tmp117 = (unsigned int )disketteExtension;
 4619#line 456
 4620      __cil_tmp118 = __cil_tmp117 + 136;
 4621#line 456
 4622      mem_233 = (PDRIVER_OBJECT *)__cil_tmp118;
 4623#line 456
 4624      *mem_233 = DriverObject;
 4625#line 459
 4626      __cil_tmp119 = (unsigned int )disketteExtension;
 4627#line 459
 4628      __cil_tmp120 = __cil_tmp119 + 4;
 4629#line 459
 4630      mem_234 = (PDEVICE_OBJECT *)__cil_tmp120;
 4631#line 459
 4632      *mem_234 = PhysicalDeviceObject;
 4633      {
 4634#line 464
 4635      while (1) {
 4636        while_5_continue: /* CIL Label */ ;
 4637        goto while_5_break;
 4638      }
 4639      while_5_break: /* CIL Label */ ;
 4640      }
 4641      {
 4642#line 466
 4643      __cil_tmp121 = (unsigned int )disketteExtension;
 4644#line 466
 4645      __cil_tmp122 = __cil_tmp121 + 8;
 4646#line 466
 4647      __cil_tmp123 = & deviceObject;
 4648#line 466
 4649      __cil_tmp124 = *__cil_tmp123;
 4650#line 466
 4651      mem_235 = (PDEVICE_OBJECT *)__cil_tmp122;
 4652#line 466
 4653      *mem_235 = IoAttachDeviceToDeviceStack(__cil_tmp124, PhysicalDeviceObject);
 4654      }
 4655      {
 4656#line 472
 4657      while (1) {
 4658        while_6_continue: /* CIL Label */ ;
 4659        goto while_6_break;
 4660      }
 4661      while_6_break: /* CIL Label */ ;
 4662      }
 4663      {
 4664#line 474
 4665      __cil_tmp125 = (unsigned int )disketteExtension;
 4666#line 474
 4667      __cil_tmp126 = __cil_tmp125 + 32;
 4668#line 474
 4669      __cil_tmp127 = (KSEMAPHORE *)__cil_tmp126;
 4670#line 474
 4671      KeInitializeSemaphore(__cil_tmp127, 0L, 2147483647L);
 4672#line 478
 4673      __cil_tmp128 = (unsigned int )disketteExtension;
 4674#line 478
 4675      __cil_tmp129 = __cil_tmp128 + 396;
 4676#line 478
 4677      mem_236 = (LONG *)__cil_tmp129;
 4678#line 478
 4679      *mem_236 = 1L;
 4680#line 478
 4681      __cil_tmp130 = 396 + 8;
 4682#line 478
 4683      __cil_tmp131 = (unsigned int )disketteExtension;
 4684#line 478
 4685      __cil_tmp132 = __cil_tmp131 + __cil_tmp130;
 4686#line 478
 4687      mem_237 = (ULONG *)__cil_tmp132;
 4688#line 478
 4689      *mem_237 = 0UL;
 4690#line 478
 4691      __cil_tmp133 = 396 + 12;
 4692#line 478
 4693      __cil_tmp134 = (unsigned int )disketteExtension;
 4694#line 478
 4695      __cil_tmp135 = __cil_tmp134 + __cil_tmp133;
 4696#line 478
 4697      __cil_tmp136 = (KEVENT *)__cil_tmp135;
 4698#line 478
 4699      __cil_tmp137 = (enum _EVENT_TYPE )1;
 4700#line 478
 4701      KeInitializeEvent(__cil_tmp136, __cil_tmp137, (unsigned char)0);
 4702#line 480
 4703      __cil_tmp138 = (unsigned int )disketteExtension;
 4704#line 480
 4705      __cil_tmp139 = __cil_tmp138 + 52;
 4706#line 480
 4707      __cil_tmp140 = (KSPIN_LOCK *)__cil_tmp139;
 4708#line 480
 4709      KeInitializeSpinLock(__cil_tmp140);
 4710#line 482
 4711      __cil_tmp141 = (unsigned int )disketteExtension;
 4712#line 482
 4713      __cil_tmp142 = __cil_tmp141 + 56;
 4714#line 482
 4715      mem_238 = (LONG *)__cil_tmp142;
 4716#line 482
 4717      *mem_238 = 1L;
 4718#line 482
 4719      __cil_tmp143 = 56 + 8;
 4720#line 482
 4721      __cil_tmp144 = (unsigned int )disketteExtension;
 4722#line 482
 4723      __cil_tmp145 = __cil_tmp144 + __cil_tmp143;
 4724#line 482
 4725      mem_239 = (ULONG *)__cil_tmp145;
 4726#line 482
 4727      *mem_239 = 0UL;
 4728#line 482
 4729      __cil_tmp146 = 56 + 12;
 4730#line 482
 4731      __cil_tmp147 = (unsigned int )disketteExtension;
 4732#line 482
 4733      __cil_tmp148 = __cil_tmp147 + __cil_tmp146;
 4734#line 482
 4735      __cil_tmp149 = (KEVENT *)__cil_tmp148;
 4736#line 482
 4737      __cil_tmp150 = (enum _EVENT_TYPE )1;
 4738#line 482
 4739      KeInitializeEvent(__cil_tmp149, __cil_tmp150, (unsigned char)0);
 4740#line 484
 4741      __cil_tmp151 = (unsigned int )disketteExtension;
 4742#line 484
 4743      __cil_tmp152 = __cil_tmp151 + 428;
 4744#line 484
 4745      mem_240 = (LONG *)__cil_tmp152;
 4746#line 484
 4747      *mem_240 = 1L;
 4748#line 484
 4749      __cil_tmp153 = 428 + 8;
 4750#line 484
 4751      __cil_tmp154 = (unsigned int )disketteExtension;
 4752#line 484
 4753      __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
 4754#line 484
 4755      mem_241 = (ULONG *)__cil_tmp155;
 4756#line 484
 4757      *mem_241 = 0UL;
 4758#line 484
 4759      __cil_tmp156 = 428 + 12;
 4760#line 484
 4761      __cil_tmp157 = (unsigned int )disketteExtension;
 4762#line 484
 4763      __cil_tmp158 = __cil_tmp157 + __cil_tmp156;
 4764#line 484
 4765      __cil_tmp159 = (KEVENT *)__cil_tmp158;
 4766#line 484
 4767      __cil_tmp160 = (enum _EVENT_TYPE )1;
 4768#line 484
 4769      KeInitializeEvent(__cil_tmp159, __cil_tmp160, (unsigned char)0);
 4770#line 486
 4771      __cil_tmp161 = 96 + 4;
 4772#line 486
 4773      __cil_tmp162 = (unsigned int )disketteExtension;
 4774#line 486
 4775      __cil_tmp163 = __cil_tmp162 + __cil_tmp161;
 4776#line 486
 4777      __cil_tmp164 = (unsigned int )disketteExtension;
 4778#line 486
 4779      __cil_tmp165 = __cil_tmp164 + 96;
 4780#line 486
 4781      mem_242 = (struct _LIST_ENTRY **)__cil_tmp163;
 4782#line 486
 4783      *mem_242 = (LIST_ENTRY *)__cil_tmp165;
 4784#line 486
 4785      __cil_tmp166 = (unsigned int )disketteExtension;
 4786#line 486
 4787      __cil_tmp167 = __cil_tmp166 + 96;
 4788#line 486
 4789      __cil_tmp168 = 96 + 4;
 4790#line 486
 4791      __cil_tmp169 = (unsigned int )disketteExtension;
 4792#line 486
 4793      __cil_tmp170 = __cil_tmp169 + __cil_tmp168;
 4794#line 486
 4795      mem_243 = (struct _LIST_ENTRY **)__cil_tmp167;
 4796#line 486
 4797      mem_244 = (struct _LIST_ENTRY **)__cil_tmp170;
 4798#line 486
 4799      *mem_243 = *mem_244;
 4800#line 488
 4801      __cil_tmp171 = (unsigned int )disketteExtension;
 4802#line 488
 4803      __cil_tmp172 = __cil_tmp171 + 88;
 4804#line 488
 4805      mem_245 = (LONG *)__cil_tmp172;
 4806#line 488
 4807      *mem_245 = -1L;
 4808#line 490
 4809      __cil_tmp173 = (unsigned int )disketteExtension;
 4810#line 490
 4811      __cil_tmp174 = __cil_tmp173 + 12;
 4812#line 490
 4813      mem_246 = (BOOLEAN *)__cil_tmp174;
 4814#line 490
 4815      *mem_246 = (unsigned char)0;
 4816#line 491
 4817      __cil_tmp175 = (unsigned int )disketteExtension;
 4818#line 491
 4819      __cil_tmp176 = __cil_tmp175 + 13;
 4820#line 491
 4821      mem_247 = (BOOLEAN *)__cil_tmp176;
 4822#line 491
 4823      *mem_247 = (unsigned char)0;
 4824#line 492
 4825      __cil_tmp177 = (unsigned int )disketteExtension;
 4826#line 492
 4827      __cil_tmp178 = __cil_tmp177 + 14;
 4828#line 492
 4829      mem_248 = (BOOLEAN *)__cil_tmp178;
 4830#line 492
 4831      *mem_248 = (unsigned char)0;
 4832#line 493
 4833      __cil_tmp179 = 16 + 4;
 4834#line 493
 4835      __cil_tmp180 = (unsigned int )disketteExtension;
 4836#line 493
 4837      __cil_tmp181 = __cil_tmp180 + __cil_tmp179;
 4838#line 493
 4839      __cil_tmp182 = (unsigned int )disketteExtension;
 4840#line 493
 4841      __cil_tmp183 = __cil_tmp182 + 16;
 4842#line 493
 4843      mem_249 = (struct _LIST_ENTRY **)__cil_tmp181;
 4844#line 493
 4845      *mem_249 = (LIST_ENTRY *)__cil_tmp183;
 4846#line 493
 4847      __cil_tmp184 = (unsigned int )disketteExtension;
 4848#line 493
 4849      __cil_tmp185 = __cil_tmp184 + 16;
 4850#line 493
 4851      __cil_tmp186 = 16 + 4;
 4852#line 493
 4853      __cil_tmp187 = (unsigned int )disketteExtension;
 4854#line 493
 4855      __cil_tmp188 = __cil_tmp187 + __cil_tmp186;
 4856#line 493
 4857      mem_250 = (struct _LIST_ENTRY **)__cil_tmp185;
 4858#line 493
 4859      mem_251 = (struct _LIST_ENTRY **)__cil_tmp188;
 4860#line 493
 4861      *mem_250 = *mem_251;
 4862#line 494
 4863      __cil_tmp189 = (unsigned int )disketteExtension;
 4864#line 494
 4865      __cil_tmp190 = __cil_tmp189 + 24;
 4866#line 494
 4867      __cil_tmp191 = (KSPIN_LOCK *)__cil_tmp190;
 4868#line 494
 4869      KeInitializeSpinLock(__cil_tmp191);
 4870#line 495
 4871      __cil_tmp192 = (KSPIN_LOCK *)disketteExtension;
 4872#line 495
 4873      KeInitializeSpinLock(__cil_tmp192);
 4874#line 497
 4875      __cil_tmp193 = (unsigned int )disketteExtension;
 4876#line 497
 4877      __cil_tmp194 = __cil_tmp193 + 172;
 4878#line 497
 4879      mem_252 = (BOOLEAN *)__cil_tmp194;
 4880#line 497
 4881      *mem_252 = (unsigned char)0;
 4882#line 498
 4883      __cil_tmp195 = (unsigned int )disketteExtension;
 4884#line 498
 4885      __cil_tmp196 = __cil_tmp195 + 392;
 4886#line 498
 4887      mem_253 = (BOOLEAN *)__cil_tmp196;
 4888#line 498
 4889      *mem_253 = (unsigned char)0;
 4890#line 499
 4891      __cil_tmp197 = (unsigned int )disketteExtension;
 4892#line 499
 4893      __cil_tmp198 = __cil_tmp197 + 28;
 4894#line 499
 4895      __cil_tmp199 = & deviceObject;
 4896#line 499
 4897      mem_254 = (PDEVICE_OBJECT *)__cil_tmp198;
 4898#line 499
 4899      *mem_254 = *__cil_tmp199;
 4900#line 501
 4901      __cil_tmp200 = (unsigned int )disketteExtension;
 4902#line 501
 4903      __cil_tmp201 = __cil_tmp200 + 250;
 4904#line 501
 4905      mem_255 = (BOOLEAN *)__cil_tmp201;
 4906#line 501
 4907      *mem_255 = (unsigned char)0;
 4908#line 503
 4909      __cil_tmp202 = (unsigned int )disketteExtension;
 4910#line 503
 4911      __cil_tmp203 = __cil_tmp202 + 184;
 4912#line 503
 4913      mem_256 = (MEDIA_TYPE *)__cil_tmp203;
 4914#line 503
 4915      *mem_256 = (enum _MEDIA_TYPE )-1;
 4916      }
 4917      {
 4918#line 505
 4919      __cil_tmp204 = (KUSER_SHARED_DATA * const  )4292804608U;
 4920#line 505
 4921      __cil_tmp205 = (unsigned int )__cil_tmp204;
 4922#line 505
 4923      __cil_tmp206 = __cil_tmp205 + 732;
 4924#line 505
 4925      mem_257 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp206;
 4926#line 505
 4927      __cil_tmp207 = *mem_257;
 4928#line 505
 4929      __cil_tmp208 = (int )__cil_tmp207;
 4930#line 505
 4931      if (__cil_tmp208 == 1) {
 4932#line 505
 4933        __cil_tmp209 = (unsigned int )disketteExtension;
 4934#line 505
 4935        __cil_tmp210 = __cil_tmp209 + 365;
 4936#line 505
 4937        mem_258 = (BOOLEAN *)__cil_tmp210;
 4938#line 505
 4939        *mem_258 = (unsigned char)0;
 4940      } else {
 4941#line 505
 4942        __cil_tmp211 = (unsigned int )disketteExtension;
 4943#line 505
 4944        __cil_tmp212 = __cil_tmp211 + 365;
 4945#line 505
 4946        mem_259 = (BOOLEAN *)__cil_tmp212;
 4947#line 505
 4948        *mem_259 = (unsigned char)1;
 4949      }
 4950      }
 4951    } else {
 4952
 4953    }
 4954  } else {
 4955
 4956  }
 4957#line 509
 4958  return (ntStatus);
 4959}
 4960}
 4961#line 512 "floppy.c"
 4962NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
 4963                          ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 4964                          CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
 4965                          PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
 4966                          ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) 
 4967{ PDISKETTE_EXTENSION disketteExtension ;
 4968  ULONG i ;
 4969  PCM_FULL_RESOURCE_DESCRIPTOR peripheralData ;
 4970  PCM_PARTIAL_RESOURCE_DESCRIPTOR partial ;
 4971  PCM_FLOPPY_DEVICE_DATA fDeviceData ;
 4972  UCHAR driveType ;
 4973  PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
 4974  PKEY_VALUE_FULL_INFORMATION *__cil_tmp19 ;
 4975  PKEY_VALUE_FULL_INFORMATION __cil_tmp20 ;
 4976  unsigned int __cil_tmp21 ;
 4977  unsigned int __cil_tmp22 ;
 4978  ULONG __cil_tmp23 ;
 4979  PKEY_VALUE_FULL_INFORMATION *__cil_tmp24 ;
 4980  PKEY_VALUE_FULL_INFORMATION __cil_tmp25 ;
 4981  UCHAR *__cil_tmp26 ;
 4982  UCHAR *__cil_tmp27 ;
 4983  PKEY_VALUE_FULL_INFORMATION *__cil_tmp28 ;
 4984  PKEY_VALUE_FULL_INFORMATION __cil_tmp29 ;
 4985  unsigned int __cil_tmp30 ;
 4986  unsigned int __cil_tmp31 ;
 4987  ULONG __cil_tmp32 ;
 4988  PKEY_VALUE_FULL_INFORMATION *__cil_tmp33 ;
 4989  PKEY_VALUE_FULL_INFORMATION __cil_tmp34 ;
 4990  UCHAR *__cil_tmp35 ;
 4991  UCHAR *__cil_tmp36 ;
 4992  unsigned int __cil_tmp37 ;
 4993  unsigned int __cil_tmp38 ;
 4994  unsigned int __cil_tmp39 ;
 4995  ULONG __cil_tmp40 ;
 4996  unsigned int __cil_tmp41 ;
 4997  unsigned int __cil_tmp42 ;
 4998  unsigned int __cil_tmp43 ;
 4999  unsigned int __cil_tmp44 ;
 5000  unsigned int __cil_tmp45 ;
 5001  UCHAR __cil_tmp46 ;
 5002  int __cil_tmp47 ;
 5003  unsigned int __cil_tmp48 ;
 5004  unsigned int __cil_tmp49 ;
 5005  PCM_PARTIAL_RESOURCE_DESCRIPTOR __cil_tmp50 ;
 5006  unsigned int __cil_tmp51 ;
 5007  unsigned int __cil_tmp52 ;
 5008  ULONG __cil_tmp53 ;
 5009  KUSER_SHARED_DATA *__cil_tmp54 ;
 5010  unsigned int __cil_tmp55 ;
 5011  unsigned int __cil_tmp56 ;
 5012  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp57 ;
 5013  int __cil_tmp58 ;
 5014  unsigned int __cil_tmp59 ;
 5015  unsigned int __cil_tmp60 ;
 5016  int __cil_tmp61 ;
 5017  PDRIVE_MEDIA_LIMITS __cil_tmp62 ;
 5018  DRIVE_MEDIA_TYPE __cil_tmp63 ;
 5019  unsigned int __cil_tmp64 ;
 5020  PDRIVE_MEDIA_CONSTANTS __cil_tmp65 ;
 5021  USHORT __cil_tmp66 ;
 5022  int __cil_tmp67 ;
 5023  unsigned int __cil_tmp68 ;
 5024  unsigned int __cil_tmp69 ;
 5025  unsigned int __cil_tmp70 ;
 5026  unsigned int __cil_tmp71 ;
 5027  unsigned int __cil_tmp72 ;
 5028  unsigned int __cil_tmp73 ;
 5029  unsigned int __cil_tmp74 ;
 5030  unsigned int __cil_tmp75 ;
 5031  unsigned int __cil_tmp76 ;
 5032  unsigned int __cil_tmp77 ;
 5033  unsigned int __cil_tmp78 ;
 5034  unsigned int __cil_tmp79 ;
 5035  unsigned int __cil_tmp80 ;
 5036  unsigned int __cil_tmp81 ;
 5037  unsigned int __cil_tmp82 ;
 5038  unsigned int __cil_tmp83 ;
 5039  unsigned int __cil_tmp84 ;
 5040  unsigned int __cil_tmp85 ;
 5041  UCHAR __cil_tmp86 ;
 5042  int __cil_tmp87 ;
 5043  unsigned int __cil_tmp88 ;
 5044  unsigned int __cil_tmp89 ;
 5045  ULONG __cil_tmp90 ;
 5046  unsigned int __cil_tmp91 ;
 5047  unsigned int __cil_tmp92 ;
 5048  unsigned int __cil_tmp93 ;
 5049  unsigned int __cil_tmp94 ;
 5050  unsigned int __cil_tmp95 ;
 5051  unsigned int __cil_tmp96 ;
 5052  unsigned int __cil_tmp97 ;
 5053  unsigned int __cil_tmp98 ;
 5054  unsigned int __cil_tmp99 ;
 5055  unsigned int __cil_tmp100 ;
 5056  unsigned int __cil_tmp101 ;
 5057  unsigned int __cil_tmp102 ;
 5058  unsigned int __cil_tmp103 ;
 5059  unsigned int __cil_tmp104 ;
 5060  unsigned int __cil_tmp105 ;
 5061  unsigned int __cil_tmp106 ;
 5062  unsigned int __cil_tmp107 ;
 5063  unsigned int __cil_tmp108 ;
 5064  unsigned int __cil_tmp109 ;
 5065  unsigned int __cil_tmp110 ;
 5066  unsigned int __cil_tmp111 ;
 5067  unsigned int __cil_tmp112 ;
 5068  unsigned int __cil_tmp113 ;
 5069  unsigned int __cil_tmp114 ;
 5070  UCHAR __cil_tmp115 ;
 5071  int __cil_tmp116 ;
 5072  int __cil_tmp117 ;
 5073  int __cil_tmp118 ;
 5074  unsigned int __cil_tmp119 ;
 5075  unsigned int __cil_tmp120 ;
 5076  unsigned int __cil_tmp121 ;
 5077  unsigned int __cil_tmp122 ;
 5078  UCHAR __cil_tmp123 ;
 5079  int __cil_tmp124 ;
 5080  int __cil_tmp125 ;
 5081  int __cil_tmp126 ;
 5082  unsigned int __cil_tmp127 ;
 5083  unsigned int __cil_tmp128 ;
 5084  UCHAR __cil_tmp129 ;
 5085  int __cil_tmp130 ;
 5086  unsigned int __cil_tmp131 ;
 5087  unsigned int __cil_tmp132 ;
 5088  unsigned int __cil_tmp133 ;
 5089  unsigned int __cil_tmp134 ;
 5090  unsigned int __cil_tmp135 ;
 5091  unsigned int __cil_tmp136 ;
 5092  unsigned int __cil_tmp137 ;
 5093  unsigned int __cil_tmp138 ;
 5094  ULONG *mem_139 ;
 5095  ULONG *mem_140 ;
 5096  ULONG *mem_141 ;
 5097  UCHAR *mem_142 ;
 5098  ULONG *mem_143 ;
 5099  ALTERNATIVE_ARCHITECTURE_TYPE *mem_144 ;
 5100  UCHAR *mem_145 ;
 5101  DRIVE_MEDIA_TYPE *mem_146 ;
 5102  USHORT *mem_147 ;
 5103  UCHAR *mem_148 ;
 5104  UCHAR *mem_149 ;
 5105  UCHAR *mem_150 ;
 5106  UCHAR *mem_151 ;
 5107  UCHAR *mem_152 ;
 5108  UCHAR *mem_153 ;
 5109  UCHAR *mem_154 ;
 5110  UCHAR *mem_155 ;
 5111  UCHAR *mem_156 ;
 5112  ULONG *mem_157 ;
 5113  UCHAR *mem_158 ;
 5114  UCHAR *mem_159 ;
 5115  UCHAR *mem_160 ;
 5116  UCHAR *mem_161 ;
 5117  UCHAR *mem_162 ;
 5118  UCHAR *mem_163 ;
 5119  UCHAR *mem_164 ;
 5120  UCHAR *mem_165 ;
 5121  UCHAR *mem_166 ;
 5122  UCHAR *mem_167 ;
 5123  UCHAR *mem_168 ;
 5124  USHORT *mem_169 ;
 5125  UCHAR *mem_170 ;
 5126  USHORT *mem_171 ;
 5127  UCHAR *mem_172 ;
 5128  UCHAR *mem_173 ;
 5129  UCHAR *mem_174 ;
 5130  UCHAR *mem_175 ;
 5131  UCHAR *mem_176 ;
 5132
 5133  {
 5134#line 577
 5135  disketteExtension = (DISKETTE_EXTENSION *)Context;
 5136  {
 5137#line 596
 5138  __cil_tmp19 = PeripheralInformation + 1;
 5139#line 596
 5140  __cil_tmp20 = *__cil_tmp19;
 5141#line 596
 5142  __cil_tmp21 = (unsigned int )__cil_tmp20;
 5143#line 596
 5144  __cil_tmp22 = __cil_tmp21 + 12;
 5145#line 596
 5146  mem_139 = (ULONG *)__cil_tmp22;
 5147#line 596
 5148  __cil_tmp23 = *mem_139;
 5149#line 596
 5150  __cil_tmp24 = PeripheralInformation + 1;
 5151#line 596
 5152  __cil_tmp25 = *__cil_tmp24;
 5153#line 596
 5154  __cil_tmp26 = (UCHAR *)__cil_tmp25;
 5155#line 596
 5156  __cil_tmp27 = __cil_tmp26 + __cil_tmp23;
 5157#line 596
 5158  if (! __cil_tmp27) {
 5159#line 600
 5160    return (-1073741811L);
 5161  } else {
 5162
 5163  }
 5164  }
 5165#line 604
 5166  __cil_tmp28 = PeripheralInformation + 1;
 5167#line 604
 5168  __cil_tmp29 = *__cil_tmp28;
 5169#line 604
 5170  __cil_tmp30 = (unsigned int )__cil_tmp29;
 5171#line 604
 5172  __cil_tmp31 = __cil_tmp30 + 8;
 5173#line 604
 5174  mem_140 = (ULONG *)__cil_tmp31;
 5175#line 604
 5176  __cil_tmp32 = *mem_140;
 5177#line 604
 5178  __cil_tmp33 = PeripheralInformation + 1;
 5179#line 604
 5180  __cil_tmp34 = *__cil_tmp33;
 5181#line 604
 5182  __cil_tmp35 = (UCHAR *)__cil_tmp34;
 5183#line 604
 5184  __cil_tmp36 = __cil_tmp35 + __cil_tmp32;
 5185#line 604
 5186  peripheralData = (struct _CM_FULL_RESOURCE_DESCRIPTOR *)__cil_tmp36;
 5187#line 619
 5188  i = 0UL;
 5189  {
 5190#line 619
 5191  while (1) {
 5192    while_7_continue: /* CIL Label */ ;
 5193    {
 5194#line 619
 5195    __cil_tmp37 = 36 + 4;
 5196#line 619
 5197    __cil_tmp38 = (unsigned int )peripheralData;
 5198#line 619
 5199    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
 5200#line 619
 5201    mem_141 = (ULONG *)__cil_tmp39;
 5202#line 619
 5203    __cil_tmp40 = *mem_141;
 5204#line 619
 5205    if (i < __cil_tmp40) {
 5206
 5207    } else {
 5208      goto while_7_break;
 5209    }
 5210    }
 5211#line 621
 5212    __cil_tmp41 = i * 16U;
 5213#line 621
 5214    __cil_tmp42 = 8 + __cil_tmp41;
 5215#line 621
 5216    __cil_tmp43 = 36 + __cil_tmp42;
 5217#line 621
 5218    __cil_tmp44 = (unsigned int )peripheralData;
 5219#line 621
 5220    __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
 5221#line 621
 5222    partial = (CM_PARTIAL_RESOURCE_DESCRIPTOR *)__cil_tmp45;
 5223    {
 5224#line 624
 5225    mem_142 = (UCHAR *)partial;
 5226#line 624
 5227    __cil_tmp46 = *mem_142;
 5228#line 624
 5229    __cil_tmp47 = (int )__cil_tmp46;
 5230#line 624
 5231    if (__cil_tmp47 == 5) {
 5232#line 633
 5233      __cil_tmp48 = (unsigned int )disketteExtension;
 5234#line 633
 5235      __cil_tmp49 = __cil_tmp48 + 252;
 5236#line 633
 5237      biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp49;
 5238#line 637
 5239      __cil_tmp50 = partial + 1;
 5240#line 637
 5241      fDeviceData = (struct _CM_FLOPPY_DEVICE_DATA *)__cil_tmp50;
 5242      {
 5243#line 643
 5244      __cil_tmp51 = (unsigned int )fDeviceData;
 5245#line 643
 5246      __cil_tmp52 = __cil_tmp51 + 12;
 5247#line 643
 5248      mem_143 = (ULONG *)__cil_tmp52;
 5249#line 643
 5250      __cil_tmp53 = *mem_143;
 5251#line 644
 5252      if ((int )__cil_tmp53 == 360) {
 5253        goto switch_8_360;
 5254      } else {
 5255#line 646
 5256        if ((int )__cil_tmp53 == 1200) {
 5257          goto switch_8_1200;
 5258        } else {
 5259#line 647
 5260          if ((int )__cil_tmp53 == 1185) {
 5261            goto switch_8_1185;
 5262          } else {
 5263#line 648
 5264            if ((int )__cil_tmp53 == 1423) {
 5265              goto switch_8_1423;
 5266            } else {
 5267#line 649
 5268              if ((int )__cil_tmp53 == 1440) {
 5269                goto switch_8_1440;
 5270              } else {
 5271#line 650
 5272                if ((int )__cil_tmp53 == 2880) {
 5273                  goto switch_8_2880;
 5274                } else {
 5275#line 651
 5276                  if ((int )__cil_tmp53 == 1201) {
 5277                    goto switch_8_1201;
 5278                  } else {
 5279                    {
 5280                    goto switch_8_default;
 5281#line 643
 5282                    if (0) {
 5283                      switch_8_360: /* CIL Label */ 
 5284#line 645
 5285                      driveType = (unsigned char)0;
 5286                      goto switch_8_break;
 5287                      switch_8_1200: /* CIL Label */ 
 5288#line 646
 5289                      driveType = (unsigned char)1;
 5290                      goto switch_8_break;
 5291                      switch_8_1185: /* CIL Label */ 
 5292#line 647
 5293                      driveType = (unsigned char)1;
 5294                      goto switch_8_break;
 5295                      switch_8_1423: /* CIL Label */ 
 5296#line 648
 5297                      driveType = (unsigned char)3;
 5298                      goto switch_8_break;
 5299                      switch_8_1440: /* CIL Label */ 
 5300#line 649
 5301                      driveType = (unsigned char)3;
 5302                      goto switch_8_break;
 5303                      switch_8_2880: /* CIL Label */ 
 5304#line 650
 5305                      driveType = (unsigned char)4;
 5306                      goto switch_8_break;
 5307                      switch_8_1201: /* CIL Label */ ;
 5308                      {
 5309#line 651
 5310                      __cil_tmp54 = (KUSER_SHARED_DATA * const  )4292804608U;
 5311#line 651
 5312                      __cil_tmp55 = (unsigned int )__cil_tmp54;
 5313#line 651
 5314                      __cil_tmp56 = __cil_tmp55 + 732;
 5315#line 651
 5316                      mem_144 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp56;
 5317#line 651
 5318                      __cil_tmp57 = *mem_144;
 5319#line 651
 5320                      __cil_tmp58 = (int )__cil_tmp57;
 5321#line 651
 5322                      if (__cil_tmp58 == 1) {
 5323#line 652
 5324                        driveType = (unsigned char)5;
 5325                        goto switch_8_break;
 5326                      } else {
 5327
 5328                      }
 5329                      }
 5330                      switch_8_default: /* CIL Label */ ;
 5331                      {
 5332#line 662
 5333                      while (1) {
 5334                        while_9_continue: /* CIL Label */ ;
 5335                        goto while_9_break;
 5336                      }
 5337                      while_9_break: /* CIL Label */ ;
 5338                      }
 5339#line 664
 5340                      driveType = (unsigned char)1;
 5341                      {
 5342#line 671
 5343                      while (1) {
 5344                        while_10_continue: /* CIL Label */ ;
 5345                        goto while_10_break;
 5346                      }
 5347                      while_10_break: /* CIL Label */ ;
 5348                      }
 5349                      goto switch_8_break;
 5350                    } else {
 5351                      switch_8_break: /* CIL Label */ ;
 5352                    }
 5353                    }
 5354                  }
 5355                }
 5356              }
 5357            }
 5358          }
 5359        }
 5360      }
 5361      }
 5362#line 677
 5363      __cil_tmp59 = (unsigned int )disketteExtension;
 5364#line 677
 5365      __cil_tmp60 = __cil_tmp59 + 174;
 5366#line 677
 5367      mem_145 = (UCHAR *)__cil_tmp60;
 5368#line 677
 5369      *mem_145 = driveType;
 5370#line 684
 5371      __cil_tmp61 = (int )driveType;
 5372#line 684
 5373      __cil_tmp62 = DriveMediaLimits + __cil_tmp61;
 5374#line 684
 5375      mem_146 = (DRIVE_MEDIA_TYPE *)__cil_tmp62;
 5376#line 684
 5377      __cil_tmp63 = *mem_146;
 5378#line 684
 5379      __cil_tmp64 = (unsigned int )__cil_tmp63;
 5380#line 684
 5381      __cil_tmp65 = DriveMediaConstants + __cil_tmp64;
 5382#line 684
 5383      *biosDriveMediaConstants = *__cil_tmp65;
 5384      {
 5385#line 693
 5386      mem_147 = (USHORT *)fDeviceData;
 5387#line 693
 5388      __cil_tmp66 = *mem_147;
 5389#line 693
 5390      __cil_tmp67 = (int )__cil_tmp66;
 5391#line 693
 5392      if (__cil_tmp67 >= 2) {
 5393#line 698
 5394        __cil_tmp68 = (unsigned int )biosDriveMediaConstants;
 5395#line 698
 5396        __cil_tmp69 = __cil_tmp68 + 32;
 5397#line 698
 5398        __cil_tmp70 = (unsigned int )fDeviceData;
 5399#line 698
 5400        __cil_tmp71 = __cil_tmp70 + 20;
 5401#line 698
 5402        mem_148 = (UCHAR *)__cil_tmp69;
 5403#line 698
 5404        mem_149 = (UCHAR *)__cil_tmp71;
 5405#line 698
 5406        *mem_148 = *mem_149;
 5407#line 701
 5408        __cil_tmp72 = (unsigned int )biosDriveMediaConstants;
 5409#line 701
 5410        __cil_tmp73 = __cil_tmp72 + 33;
 5411#line 701
 5412        __cil_tmp74 = (unsigned int )fDeviceData;
 5413#line 701
 5414        __cil_tmp75 = __cil_tmp74 + 21;
 5415#line 701
 5416        mem_150 = (UCHAR *)__cil_tmp73;
 5417#line 701
 5418        mem_151 = (UCHAR *)__cil_tmp75;
 5419#line 701
 5420        *mem_150 = *mem_151;
 5421#line 704
 5422        __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
 5423#line 704
 5424        __cil_tmp77 = __cil_tmp76 + 34;
 5425#line 704
 5426        __cil_tmp78 = (unsigned int )fDeviceData;
 5427#line 704
 5428        __cil_tmp79 = __cil_tmp78 + 22;
 5429#line 704
 5430        mem_152 = (UCHAR *)__cil_tmp77;
 5431#line 704
 5432        mem_153 = (UCHAR *)__cil_tmp79;
 5433#line 704
 5434        *mem_152 = *mem_153;
 5435#line 707
 5436        __cil_tmp80 = (unsigned int )biosDriveMediaConstants;
 5437#line 707
 5438        __cil_tmp81 = __cil_tmp80 + 35;
 5439#line 707
 5440        __cil_tmp82 = (unsigned int )fDeviceData;
 5441#line 707
 5442        __cil_tmp83 = __cil_tmp82 + 23;
 5443#line 707
 5444        mem_154 = (UCHAR *)__cil_tmp81;
 5445#line 707
 5446        mem_155 = (UCHAR *)__cil_tmp83;
 5447#line 707
 5448        *mem_154 = *mem_155;
 5449        {
 5450#line 712
 5451        __cil_tmp84 = (unsigned int )fDeviceData;
 5452#line 712
 5453        __cil_tmp85 = __cil_tmp84 + 24;
 5454#line 712
 5455        mem_156 = (UCHAR *)__cil_tmp85;
 5456#line 712
 5457        __cil_tmp86 = *mem_156;
 5458#line 712
 5459        __cil_tmp87 = (int )__cil_tmp86;
 5460#line 712
 5461        if (__cil_tmp87 == 0) {
 5462#line 716
 5463          return (0L);
 5464        } else {
 5465
 5466        }
 5467        }
 5468        {
 5469#line 719
 5470        __cil_tmp88 = (unsigned int )fDeviceData;
 5471#line 719
 5472        __cil_tmp89 = __cil_tmp88 + 12;
 5473#line 719
 5474        mem_157 = (ULONG *)__cil_tmp89;
 5475#line 719
 5476        __cil_tmp90 = *mem_157;
 5477#line 719
 5478        if (__cil_tmp90 == 0UL) {
 5479#line 727
 5480          return (0L);
 5481        } else {
 5482
 5483        }
 5484        }
 5485#line 730
 5486        __cil_tmp91 = (unsigned int )biosDriveMediaConstants;
 5487#line 730
 5488        __cil_tmp92 = __cil_tmp91 + 38;
 5489#line 730
 5490        __cil_tmp93 = (unsigned int )fDeviceData;
 5491#line 730
 5492        __cil_tmp94 = __cil_tmp93 + 24;
 5493#line 730
 5494        mem_158 = (UCHAR *)__cil_tmp92;
 5495#line 730
 5496        mem_159 = (UCHAR *)__cil_tmp94;
 5497#line 730
 5498        *mem_158 = *mem_159;
 5499#line 733
 5500        __cil_tmp95 = (unsigned int )biosDriveMediaConstants;
 5501#line 733
 5502        __cil_tmp96 = __cil_tmp95 + 39;
 5503#line 733
 5504        __cil_tmp97 = (unsigned int )fDeviceData;
 5505#line 733
 5506        __cil_tmp98 = __cil_tmp97 + 25;
 5507#line 733
 5508        mem_160 = (UCHAR *)__cil_tmp96;
 5509#line 733
 5510        mem_161 = (UCHAR *)__cil_tmp98;
 5511#line 733
 5512        *mem_160 = *mem_161;
 5513#line 736
 5514        __cil_tmp99 = (unsigned int )biosDriveMediaConstants;
 5515#line 736
 5516        __cil_tmp100 = __cil_tmp99 + 40;
 5517#line 736
 5518        __cil_tmp101 = (unsigned int )fDeviceData;
 5519#line 736
 5520        __cil_tmp102 = __cil_tmp101 + 27;
 5521#line 736
 5522        mem_162 = (UCHAR *)__cil_tmp100;
 5523#line 736
 5524        mem_163 = (UCHAR *)__cil_tmp102;
 5525#line 736
 5526        *mem_162 = *mem_163;
 5527#line 739
 5528        __cil_tmp103 = (unsigned int )biosDriveMediaConstants;
 5529#line 739
 5530        __cil_tmp104 = __cil_tmp103 + 41;
 5531#line 739
 5532        __cil_tmp105 = (unsigned int )fDeviceData;
 5533#line 739
 5534        __cil_tmp106 = __cil_tmp105 + 28;
 5535#line 739
 5536        mem_164 = (UCHAR *)__cil_tmp104;
 5537#line 739
 5538        mem_165 = (UCHAR *)__cil_tmp106;
 5539#line 739
 5540        *mem_164 = *mem_165;
 5541#line 742
 5542        __cil_tmp107 = (unsigned int )biosDriveMediaConstants;
 5543#line 742
 5544        __cil_tmp108 = __cil_tmp107 + 42;
 5545#line 742
 5546        __cil_tmp109 = (unsigned int )fDeviceData;
 5547#line 742
 5548        __cil_tmp110 = __cil_tmp109 + 29;
 5549#line 742
 5550        mem_166 = (UCHAR *)__cil_tmp108;
 5551#line 742
 5552        mem_167 = (UCHAR *)__cil_tmp110;
 5553#line 742
 5554        *mem_166 = *mem_167;
 5555#line 745
 5556        __cil_tmp111 = (unsigned int )biosDriveMediaConstants;
 5557#line 745
 5558        __cil_tmp112 = __cil_tmp111 + 44;
 5559#line 745
 5560        __cil_tmp113 = (unsigned int )fDeviceData;
 5561#line 745
 5562        __cil_tmp114 = __cil_tmp113 + 30;
 5563#line 745
 5564        mem_168 = (UCHAR *)__cil_tmp114;
 5565#line 745
 5566        __cil_tmp115 = *mem_168;
 5567#line 745
 5568        __cil_tmp116 = (int )__cil_tmp115;
 5569#line 745
 5570        __cil_tmp117 = __cil_tmp116 * 1000;
 5571#line 745
 5572        __cil_tmp118 = __cil_tmp117 / 8;
 5573#line 745
 5574        mem_169 = (USHORT *)__cil_tmp112;
 5575#line 745
 5576        *mem_169 = (unsigned short )__cil_tmp118;
 5577#line 748
 5578        __cil_tmp119 = (unsigned int )biosDriveMediaConstants;
 5579#line 748
 5580        __cil_tmp120 = __cil_tmp119 + 46;
 5581#line 748
 5582        __cil_tmp121 = (unsigned int )fDeviceData;
 5583#line 748
 5584        __cil_tmp122 = __cil_tmp121 + 30;
 5585#line 748
 5586        mem_170 = (UCHAR *)__cil_tmp122;
 5587#line 748
 5588        __cil_tmp123 = *mem_170;
 5589#line 748
 5590        __cil_tmp124 = (int )__cil_tmp123;
 5591#line 748
 5592        __cil_tmp125 = __cil_tmp124 * 1000;
 5593#line 748
 5594        __cil_tmp126 = __cil_tmp125 / 8;
 5595#line 748
 5596        mem_171 = (USHORT *)__cil_tmp120;
 5597#line 748
 5598        *mem_171 = (unsigned short )__cil_tmp126;
 5599        {
 5600#line 751
 5601        __cil_tmp127 = (unsigned int )fDeviceData;
 5602#line 751
 5603        __cil_tmp128 = __cil_tmp127 + 31;
 5604#line 751
 5605        mem_172 = (UCHAR *)__cil_tmp128;
 5606#line 751
 5607        __cil_tmp129 = *mem_172;
 5608#line 751
 5609        __cil_tmp130 = (int )__cil_tmp129;
 5610#line 751
 5611        if (__cil_tmp130 == 0) {
 5612#line 755
 5613          return (0L);
 5614        } else {
 5615
 5616        }
 5617        }
 5618#line 758
 5619        __cil_tmp131 = (unsigned int )biosDriveMediaConstants;
 5620#line 758
 5621        __cil_tmp132 = __cil_tmp131 + 48;
 5622#line 758
 5623        __cil_tmp133 = (unsigned int )fDeviceData;
 5624#line 758
 5625        __cil_tmp134 = __cil_tmp133 + 31;
 5626#line 758
 5627        mem_173 = (UCHAR *)__cil_tmp132;
 5628#line 758
 5629        mem_174 = (UCHAR *)__cil_tmp134;
 5630#line 758
 5631        *mem_173 = *mem_174;
 5632#line 761
 5633        __cil_tmp135 = (unsigned int )biosDriveMediaConstants;
 5634#line 761
 5635        __cil_tmp136 = __cil_tmp135 + 52;
 5636#line 761
 5637        __cil_tmp137 = (unsigned int )fDeviceData;
 5638#line 761
 5639        __cil_tmp138 = __cil_tmp137 + 26;
 5640#line 761
 5641        mem_175 = (UCHAR *)__cil_tmp136;
 5642#line 761
 5643        mem_176 = (UCHAR *)__cil_tmp138;
 5644#line 761
 5645        *mem_175 = *mem_176;
 5646      } else {
 5647
 5648      }
 5649      }
 5650    } else {
 5651
 5652    }
 5653    }
 5654#line 619
 5655    i = i + 1UL;
 5656  }
 5657  while_7_break: /* CIL Label */ ;
 5658  }
 5659#line 767
 5660  return (0L);
 5661}
 5662}
 5663#line 770 "floppy.c"
 5664NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) 
 5665{ UCHAR driveType ;
 5666  PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
 5667  unsigned int __cil_tmp5 ;
 5668  unsigned int __cil_tmp6 ;
 5669  unsigned int __cil_tmp7 ;
 5670  unsigned int __cil_tmp8 ;
 5671  BOOLEAN __cil_tmp9 ;
 5672  unsigned int __cil_tmp10 ;
 5673  unsigned int __cil_tmp11 ;
 5674  unsigned int __cil_tmp12 ;
 5675  ULONG __cil_tmp13 ;
 5676  enum _ACPI_FDI_DEVICE_TYPE __cil_tmp14 ;
 5677  unsigned int __cil_tmp15 ;
 5678  unsigned int __cil_tmp16 ;
 5679  int __cil_tmp17 ;
 5680  PDRIVE_MEDIA_LIMITS __cil_tmp18 ;
 5681  DRIVE_MEDIA_TYPE __cil_tmp19 ;
 5682  unsigned int __cil_tmp20 ;
 5683  PDRIVE_MEDIA_CONSTANTS __cil_tmp21 ;
 5684  unsigned int __cil_tmp22 ;
 5685  unsigned int __cil_tmp23 ;
 5686  unsigned int __cil_tmp24 ;
 5687  unsigned int __cil_tmp25 ;
 5688  unsigned int __cil_tmp26 ;
 5689  ULONG __cil_tmp27 ;
 5690  unsigned int __cil_tmp28 ;
 5691  unsigned int __cil_tmp29 ;
 5692  unsigned int __cil_tmp30 ;
 5693  unsigned int __cil_tmp31 ;
 5694  unsigned int __cil_tmp32 ;
 5695  ULONG __cil_tmp33 ;
 5696  unsigned int __cil_tmp34 ;
 5697  unsigned int __cil_tmp35 ;
 5698  unsigned int __cil_tmp36 ;
 5699  unsigned int __cil_tmp37 ;
 5700  unsigned int __cil_tmp38 ;
 5701  ULONG __cil_tmp39 ;
 5702  unsigned int __cil_tmp40 ;
 5703  unsigned int __cil_tmp41 ;
 5704  unsigned int __cil_tmp42 ;
 5705  unsigned int __cil_tmp43 ;
 5706  unsigned int __cil_tmp44 ;
 5707  ULONG __cil_tmp45 ;
 5708  unsigned int __cil_tmp46 ;
 5709  unsigned int __cil_tmp47 ;
 5710  unsigned int __cil_tmp48 ;
 5711  unsigned int __cil_tmp49 ;
 5712  unsigned int __cil_tmp50 ;
 5713  ULONG __cil_tmp51 ;
 5714  unsigned int __cil_tmp52 ;
 5715  unsigned int __cil_tmp53 ;
 5716  unsigned int __cil_tmp54 ;
 5717  unsigned int __cil_tmp55 ;
 5718  unsigned int __cil_tmp56 ;
 5719  ULONG __cil_tmp57 ;
 5720  unsigned int __cil_tmp58 ;
 5721  unsigned int __cil_tmp59 ;
 5722  unsigned int __cil_tmp60 ;
 5723  unsigned int __cil_tmp61 ;
 5724  unsigned int __cil_tmp62 ;
 5725  ULONG __cil_tmp63 ;
 5726  unsigned int __cil_tmp64 ;
 5727  unsigned int __cil_tmp65 ;
 5728  unsigned int __cil_tmp66 ;
 5729  unsigned int __cil_tmp67 ;
 5730  unsigned int __cil_tmp68 ;
 5731  ULONG __cil_tmp69 ;
 5732  unsigned int __cil_tmp70 ;
 5733  unsigned int __cil_tmp71 ;
 5734  unsigned int __cil_tmp72 ;
 5735  unsigned int __cil_tmp73 ;
 5736  unsigned int __cil_tmp74 ;
 5737  ULONG __cil_tmp75 ;
 5738  unsigned int __cil_tmp76 ;
 5739  unsigned int __cil_tmp77 ;
 5740  unsigned int __cil_tmp78 ;
 5741  unsigned int __cil_tmp79 ;
 5742  unsigned int __cil_tmp80 ;
 5743  ULONG __cil_tmp81 ;
 5744  unsigned char __cil_tmp82 ;
 5745  int __cil_tmp83 ;
 5746  int __cil_tmp84 ;
 5747  int __cil_tmp85 ;
 5748  unsigned int __cil_tmp86 ;
 5749  unsigned int __cil_tmp87 ;
 5750  unsigned int __cil_tmp88 ;
 5751  unsigned int __cil_tmp89 ;
 5752  unsigned int __cil_tmp90 ;
 5753  ULONG __cil_tmp91 ;
 5754  unsigned short __cil_tmp92 ;
 5755  int __cil_tmp93 ;
 5756  int __cil_tmp94 ;
 5757  int __cil_tmp95 ;
 5758  unsigned int __cil_tmp96 ;
 5759  unsigned int __cil_tmp97 ;
 5760  unsigned int __cil_tmp98 ;
 5761  unsigned int __cil_tmp99 ;
 5762  unsigned int __cil_tmp100 ;
 5763  ULONG __cil_tmp101 ;
 5764  unsigned int __cil_tmp102 ;
 5765  unsigned int __cil_tmp103 ;
 5766  unsigned int __cil_tmp104 ;
 5767  unsigned int __cil_tmp105 ;
 5768  unsigned int __cil_tmp106 ;
 5769  ULONG __cil_tmp107 ;
 5770  BOOLEAN *mem_108 ;
 5771  ULONG *mem_109 ;
 5772  UCHAR *mem_110 ;
 5773  DRIVE_MEDIA_TYPE *mem_111 ;
 5774  ULONG *mem_112 ;
 5775  UCHAR *mem_113 ;
 5776  ULONG *mem_114 ;
 5777  UCHAR *mem_115 ;
 5778  ULONG *mem_116 ;
 5779  UCHAR *mem_117 ;
 5780  ULONG *mem_118 ;
 5781  UCHAR *mem_119 ;
 5782  ULONG *mem_120 ;
 5783  UCHAR *mem_121 ;
 5784  ULONG *mem_122 ;
 5785  UCHAR *mem_123 ;
 5786  ULONG *mem_124 ;
 5787  UCHAR *mem_125 ;
 5788  ULONG *mem_126 ;
 5789  UCHAR *mem_127 ;
 5790  ULONG *mem_128 ;
 5791  UCHAR *mem_129 ;
 5792  ULONG *mem_130 ;
 5793  USHORT *mem_131 ;
 5794  ULONG *mem_132 ;
 5795  USHORT *mem_133 ;
 5796  ULONG *mem_134 ;
 5797  UCHAR *mem_135 ;
 5798  ULONG *mem_136 ;
 5799  UCHAR *mem_137 ;
 5800
 5801  {
 5802#line 789
 5803  __cil_tmp5 = (unsigned int )DisketteExtension;
 5804#line 789
 5805  __cil_tmp6 = __cil_tmp5 + 252;
 5806#line 789
 5807  biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp6;
 5808  {
 5809#line 792
 5810  __cil_tmp7 = (unsigned int )FdcInfo;
 5811#line 792
 5812  __cil_tmp8 = __cil_tmp7 + 61;
 5813#line 792
 5814  mem_108 = (BOOLEAN *)__cil_tmp8;
 5815#line 792
 5816  __cil_tmp9 = *mem_108;
 5817#line 792
 5818  if (! __cil_tmp9) {
 5819#line 794
 5820    return (-1073741823L);
 5821  } else {
 5822
 5823  }
 5824  }
 5825  {
 5826#line 802
 5827  __cil_tmp10 = 64 + 4;
 5828#line 802
 5829  __cil_tmp11 = (unsigned int )FdcInfo;
 5830#line 802
 5831  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 5832#line 802
 5833  mem_109 = (ULONG *)__cil_tmp12;
 5834#line 802
 5835  __cil_tmp13 = *mem_109;
 5836#line 802
 5837  __cil_tmp14 = (enum _ACPI_FDI_DEVICE_TYPE )__cil_tmp13;
 5838#line 803
 5839  if ((int )__cil_tmp14 == 1) {
 5840    goto switch_11_1;
 5841  } else {
 5842#line 805
 5843    if ((int )__cil_tmp14 == 2) {
 5844      goto switch_11_2;
 5845    } else {
 5846#line 806
 5847      if ((int )__cil_tmp14 == 3) {
 5848        goto switch_11_3;
 5849      } else {
 5850#line 807
 5851        if ((int )__cil_tmp14 == 4) {
 5852          goto switch_11_4;
 5853        } else {
 5854#line 808
 5855          if ((int )__cil_tmp14 == 5) {
 5856            goto switch_11_5;
 5857          } else {
 5858            {
 5859            goto switch_11_default;
 5860#line 802
 5861            if (0) {
 5862              switch_11_1: /* CIL Label */ 
 5863#line 804
 5864              driveType = (unsigned char)0;
 5865              goto switch_11_break;
 5866              switch_11_2: /* CIL Label */ 
 5867#line 805
 5868              driveType = (unsigned char)1;
 5869              goto switch_11_break;
 5870              switch_11_3: /* CIL Label */ 
 5871#line 806
 5872              driveType = (unsigned char)2;
 5873              goto switch_11_break;
 5874              switch_11_4: /* CIL Label */ 
 5875#line 807
 5876              driveType = (unsigned char)3;
 5877              goto switch_11_break;
 5878              switch_11_5: /* CIL Label */ 
 5879#line 808
 5880              driveType = (unsigned char)4;
 5881              goto switch_11_break;
 5882              switch_11_default: /* CIL Label */ 
 5883#line 810
 5884              driveType = (unsigned char)1;
 5885              goto switch_11_break;
 5886            } else {
 5887              switch_11_break: /* CIL Label */ ;
 5888            }
 5889            }
 5890          }
 5891        }
 5892      }
 5893    }
 5894  }
 5895  }
 5896#line 814
 5897  __cil_tmp15 = (unsigned int )DisketteExtension;
 5898#line 814
 5899  __cil_tmp16 = __cil_tmp15 + 174;
 5900#line 814
 5901  mem_110 = (UCHAR *)__cil_tmp16;
 5902#line 814
 5903  *mem_110 = driveType;
 5904#line 821
 5905  __cil_tmp17 = (int )driveType;
 5906#line 821
 5907  __cil_tmp18 = DriveMediaLimits + __cil_tmp17;
 5908#line 821
 5909  mem_111 = (DRIVE_MEDIA_TYPE *)__cil_tmp18;
 5910#line 821
 5911  __cil_tmp19 = *mem_111;
 5912#line 821
 5913  __cil_tmp20 = (unsigned int )__cil_tmp19;
 5914#line 821
 5915  __cil_tmp21 = DriveMediaConstants + __cil_tmp20;
 5916#line 821
 5917  *biosDriveMediaConstants = *__cil_tmp21;
 5918#line 824
 5919  __cil_tmp22 = (unsigned int )biosDriveMediaConstants;
 5920#line 824
 5921  __cil_tmp23 = __cil_tmp22 + 32;
 5922#line 824
 5923  __cil_tmp24 = 64 + 20;
 5924#line 824
 5925  __cil_tmp25 = (unsigned int )FdcInfo;
 5926#line 824
 5927  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
 5928#line 824
 5929  mem_112 = (ULONG *)__cil_tmp26;
 5930#line 824
 5931  __cil_tmp27 = *mem_112;
 5932#line 824
 5933  mem_113 = (UCHAR *)__cil_tmp23;
 5934#line 824
 5935  *mem_113 = (unsigned char )__cil_tmp27;
 5936#line 825
 5937  __cil_tmp28 = (unsigned int )biosDriveMediaConstants;
 5938#line 825
 5939  __cil_tmp29 = __cil_tmp28 + 33;
 5940#line 825
 5941  __cil_tmp30 = 64 + 24;
 5942#line 825
 5943  __cil_tmp31 = (unsigned int )FdcInfo;
 5944#line 825
 5945  __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
 5946#line 825
 5947  mem_114 = (ULONG *)__cil_tmp32;
 5948#line 825
 5949  __cil_tmp33 = *mem_114;
 5950#line 825
 5951  mem_115 = (UCHAR *)__cil_tmp29;
 5952#line 825
 5953  *mem_115 = (unsigned char )__cil_tmp33;
 5954#line 826
 5955  __cil_tmp34 = (unsigned int )biosDriveMediaConstants;
 5956#line 826
 5957  __cil_tmp35 = __cil_tmp34 + 34;
 5958#line 826
 5959  __cil_tmp36 = 64 + 28;
 5960#line 826
 5961  __cil_tmp37 = (unsigned int )FdcInfo;
 5962#line 826
 5963  __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
 5964#line 826
 5965  mem_116 = (ULONG *)__cil_tmp38;
 5966#line 826
 5967  __cil_tmp39 = *mem_116;
 5968#line 826
 5969  mem_117 = (UCHAR *)__cil_tmp35;
 5970#line 826
 5971  *mem_117 = (unsigned char )__cil_tmp39;
 5972#line 827
 5973  __cil_tmp40 = (unsigned int )biosDriveMediaConstants;
 5974#line 827
 5975  __cil_tmp41 = __cil_tmp40 + 35;
 5976#line 827
 5977  __cil_tmp42 = 64 + 32;
 5978#line 827
 5979  __cil_tmp43 = (unsigned int )FdcInfo;
 5980#line 827
 5981  __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
 5982#line 827
 5983  mem_118 = (ULONG *)__cil_tmp44;
 5984#line 827
 5985  __cil_tmp45 = *mem_118;
 5986#line 827
 5987  mem_119 = (UCHAR *)__cil_tmp41;
 5988#line 827
 5989  *mem_119 = (unsigned char )__cil_tmp45;
 5990#line 828
 5991  __cil_tmp46 = (unsigned int )biosDriveMediaConstants;
 5992#line 828
 5993  __cil_tmp47 = __cil_tmp46 + 38;
 5994#line 828
 5995  __cil_tmp48 = 64 + 36;
 5996#line 828
 5997  __cil_tmp49 = (unsigned int )FdcInfo;
 5998#line 828
 5999  __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
 6000#line 828
 6001  mem_120 = (ULONG *)__cil_tmp50;
 6002#line 828
 6003  __cil_tmp51 = *mem_120;
 6004#line 828
 6005  mem_121 = (UCHAR *)__cil_tmp47;
 6006#line 828
 6007  *mem_121 = (unsigned char )__cil_tmp51;
 6008#line 829
 6009  __cil_tmp52 = (unsigned int )biosDriveMediaConstants;
 6010#line 829
 6011  __cil_tmp53 = __cil_tmp52 + 39;
 6012#line 829
 6013  __cil_tmp54 = 64 + 40;
 6014#line 829
 6015  __cil_tmp55 = (unsigned int )FdcInfo;
 6016#line 829
 6017  __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
 6018#line 829
 6019  mem_122 = (ULONG *)__cil_tmp56;
 6020#line 829
 6021  __cil_tmp57 = *mem_122;
 6022#line 829
 6023  mem_123 = (UCHAR *)__cil_tmp53;
 6024#line 829
 6025  *mem_123 = (unsigned char )__cil_tmp57;
 6026#line 830
 6027  __cil_tmp58 = (unsigned int )biosDriveMediaConstants;
 6028#line 830
 6029  __cil_tmp59 = __cil_tmp58 + 40;
 6030#line 830
 6031  __cil_tmp60 = 64 + 48;
 6032#line 830
 6033  __cil_tmp61 = (unsigned int )FdcInfo;
 6034#line 830
 6035  __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
 6036#line 830
 6037  mem_124 = (ULONG *)__cil_tmp62;
 6038#line 830
 6039  __cil_tmp63 = *mem_124;
 6040#line 830
 6041  mem_125 = (UCHAR *)__cil_tmp59;
 6042#line 830
 6043  *mem_125 = (unsigned char )__cil_tmp63;
 6044#line 831
 6045  __cil_tmp64 = (unsigned int )biosDriveMediaConstants;
 6046#line 831
 6047  __cil_tmp65 = __cil_tmp64 + 41;
 6048#line 831
 6049  __cil_tmp66 = 64 + 52;
 6050#line 831
 6051  __cil_tmp67 = (unsigned int )FdcInfo;
 6052#line 831
 6053  __cil_tmp68 = __cil_tmp67 + __cil_tmp66;
 6054#line 831
 6055  mem_126 = (ULONG *)__cil_tmp68;
 6056#line 831
 6057  __cil_tmp69 = *mem_126;
 6058#line 831
 6059  mem_127 = (UCHAR *)__cil_tmp65;
 6060#line 831
 6061  *mem_127 = (unsigned char )__cil_tmp69;
 6062#line 832
 6063  __cil_tmp70 = (unsigned int )biosDriveMediaConstants;
 6064#line 832
 6065  __cil_tmp71 = __cil_tmp70 + 42;
 6066#line 832
 6067  __cil_tmp72 = 64 + 56;
 6068#line 832
 6069  __cil_tmp73 = (unsigned int )FdcInfo;
 6070#line 832
 6071  __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
 6072#line 832
 6073  mem_128 = (ULONG *)__cil_tmp74;
 6074#line 832
 6075  __cil_tmp75 = *mem_128;
 6076#line 832
 6077  mem_129 = (UCHAR *)__cil_tmp71;
 6078#line 832
 6079  *mem_129 = (unsigned char )__cil_tmp75;
 6080#line 833
 6081  __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
 6082#line 833
 6083  __cil_tmp77 = __cil_tmp76 + 44;
 6084#line 833
 6085  __cil_tmp78 = 64 + 60;
 6086#line 833
 6087  __cil_tmp79 = (unsigned int )FdcInfo;
 6088#line 833
 6089  __cil_tmp80 = __cil_tmp79 + __cil_tmp78;
 6090#line 833
 6091  mem_130 = (ULONG *)__cil_tmp80;
 6092#line 833
 6093  __cil_tmp81 = *mem_130;
 6094#line 833
 6095  __cil_tmp82 = (unsigned char )__cil_tmp81;
 6096#line 833
 6097  __cil_tmp83 = (int )__cil_tmp82;
 6098#line 833
 6099  __cil_tmp84 = __cil_tmp83 * 1000;
 6100#line 833
 6101  __cil_tmp85 = __cil_tmp84 / 8;
 6102#line 833
 6103  mem_131 = (USHORT *)__cil_tmp77;
 6104#line 833
 6105  *mem_131 = (unsigned short )__cil_tmp85;
 6106#line 834
 6107  __cil_tmp86 = (unsigned int )biosDriveMediaConstants;
 6108#line 834
 6109  __cil_tmp87 = __cil_tmp86 + 46;
 6110#line 834
 6111  __cil_tmp88 = 64 + 60;
 6112#line 834
 6113  __cil_tmp89 = (unsigned int )FdcInfo;
 6114#line 834
 6115  __cil_tmp90 = __cil_tmp89 + __cil_tmp88;
 6116#line 834
 6117  mem_132 = (ULONG *)__cil_tmp90;
 6118#line 834
 6119  __cil_tmp91 = *mem_132;
 6120#line 834
 6121  __cil_tmp92 = (unsigned short )__cil_tmp91;
 6122#line 834
 6123  __cil_tmp93 = (int )__cil_tmp92;
 6124#line 834
 6125  __cil_tmp94 = __cil_tmp93 * 1000;
 6126#line 834
 6127  __cil_tmp95 = __cil_tmp94 / 8;
 6128#line 834
 6129  mem_133 = (USHORT *)__cil_tmp87;
 6130#line 834
 6131  *mem_133 = (unsigned short )__cil_tmp95;
 6132#line 835
 6133  __cil_tmp96 = (unsigned int )biosDriveMediaConstants;
 6134#line 835
 6135  __cil_tmp97 = __cil_tmp96 + 48;
 6136#line 835
 6137  __cil_tmp98 = 64 + 8;
 6138#line 835
 6139  __cil_tmp99 = (unsigned int )FdcInfo;
 6140#line 835
 6141  __cil_tmp100 = __cil_tmp99 + __cil_tmp98;
 6142#line 835
 6143  mem_134 = (ULONG *)__cil_tmp100;
 6144#line 835
 6145  __cil_tmp101 = *mem_134;
 6146#line 835
 6147  mem_135 = (UCHAR *)__cil_tmp97;
 6148#line 835
 6149  *mem_135 = (unsigned char )__cil_tmp101;
 6150#line 836
 6151  __cil_tmp102 = (unsigned int )biosDriveMediaConstants;
 6152#line 836
 6153  __cil_tmp103 = __cil_tmp102 + 52;
 6154#line 836
 6155  __cil_tmp104 = 64 + 44;
 6156#line 836
 6157  __cil_tmp105 = (unsigned int )FdcInfo;
 6158#line 836
 6159  __cil_tmp106 = __cil_tmp105 + __cil_tmp104;
 6160#line 836
 6161  mem_136 = (ULONG *)__cil_tmp106;
 6162#line 836
 6163  __cil_tmp107 = *mem_136;
 6164#line 836
 6165  mem_137 = (UCHAR *)__cil_tmp103;
 6166#line 836
 6167  *mem_137 = (unsigned char )__cil_tmp107;
 6168#line 838
 6169  return (0L);
 6170}
 6171}
 6172#line 949
 6173void assert(int cond) {
 6174  if (!(cond)) {
 6175    ERROR: goto ERROR; 
 6176  }
 6177  return;
 6178}
 6179#line 841 "floppy.c"
 6180NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) 
 6181{ NTSTATUS status ;
 6182  HANDLE threadHandle ;
 6183  PIO_STACK_LOCATION irpSp ;
 6184  OBJECT_ATTRIBUTES ObjAttributes ;
 6185  unsigned int __cil_tmp7 ;
 6186  unsigned int __cil_tmp8 ;
 6187  unsigned int __cil_tmp9 ;
 6188  unsigned int __cil_tmp10 ;
 6189  unsigned int __cil_tmp11 ;
 6190  unsigned int __cil_tmp12 ;
 6191  unsigned int __cil_tmp13 ;
 6192  FAST_MUTEX *__cil_tmp14 ;
 6193  unsigned int __cil_tmp15 ;
 6194  unsigned int __cil_tmp16 ;
 6195  BOOLEAN __cil_tmp17 ;
 6196  int __cil_tmp18 ;
 6197  unsigned int __cil_tmp19 ;
 6198  unsigned int __cil_tmp20 ;
 6199  FAST_MUTEX *__cil_tmp21 ;
 6200  unsigned int __cil_tmp22 ;
 6201  unsigned int __cil_tmp23 ;
 6202  unsigned int __cil_tmp24 ;
 6203  unsigned int __cil_tmp25 ;
 6204  unsigned int __cil_tmp26 ;
 6205  unsigned int __cil_tmp27 ;
 6206  unsigned int __cil_tmp28 ;
 6207  FAST_MUTEX *__cil_tmp29 ;
 6208  unsigned int __cil_tmp30 ;
 6209  unsigned int __cil_tmp31 ;
 6210  FAST_MUTEX *__cil_tmp32 ;
 6211  unsigned int __cil_tmp33 ;
 6212  unsigned int __cil_tmp34 ;
 6213  unsigned int __cil_tmp35 ;
 6214  unsigned int __cil_tmp36 ;
 6215  LONG __cil_tmp37 ;
 6216  unsigned int __cil_tmp38 ;
 6217  unsigned int __cil_tmp39 ;
 6218  LONG __cil_tmp40 ;
 6219  unsigned int __cil_tmp41 ;
 6220  unsigned int __cil_tmp42 ;
 6221  unsigned int __cil_tmp43 ;
 6222  unsigned int __cil_tmp44 ;
 6223  LONG __cil_tmp45 ;
 6224  void *__cil_tmp46 ;
 6225  OBJECT_ATTRIBUTES *__cil_tmp47 ;
 6226  unsigned int __cil_tmp48 ;
 6227  unsigned int __cil_tmp49 ;
 6228  unsigned int __cil_tmp50 ;
 6229  void *__cil_tmp51 ;
 6230  unsigned int __cil_tmp52 ;
 6231  unsigned int __cil_tmp53 ;
 6232  void *__cil_tmp54 ;
 6233  void *__cil_tmp55 ;
 6234  CLIENT_ID *__cil_tmp56 ;
 6235  void *__cil_tmp57 ;
 6236  int __cil_tmp58 ;
 6237  unsigned int __cil_tmp59 ;
 6238  unsigned int __cil_tmp60 ;
 6239  void *__cil_tmp61 ;
 6240  unsigned int __cil_tmp62 ;
 6241  unsigned int __cil_tmp63 ;
 6242  FAST_MUTEX *__cil_tmp64 ;
 6243  HANDLE *__cil_tmp65 ;
 6244  HANDLE __cil_tmp66 ;
 6245  void *__cil_tmp67 ;
 6246  struct _OBJECT_TYPE *__cil_tmp68 ;
 6247  unsigned int __cil_tmp69 ;
 6248  unsigned int __cil_tmp70 ;
 6249  PKTHREAD *__cil_tmp71 ;
 6250  PVOID *__cil_tmp72 ;
 6251  void *__cil_tmp73 ;
 6252  struct _OBJECT_HANDLE_INFORMATION *__cil_tmp74 ;
 6253  HANDLE *__cil_tmp75 ;
 6254  HANDLE __cil_tmp76 ;
 6255  unsigned int __cil_tmp77 ;
 6256  unsigned int __cil_tmp78 ;
 6257  FAST_MUTEX *__cil_tmp79 ;
 6258  int __cil_tmp80 ;
 6259  unsigned int __cil_tmp81 ;
 6260  unsigned int __cil_tmp82 ;
 6261  FAST_MUTEX *__cil_tmp83 ;
 6262  unsigned int __cil_tmp84 ;
 6263  unsigned int __cil_tmp85 ;
 6264  unsigned int __cil_tmp86 ;
 6265  unsigned int __cil_tmp87 ;
 6266  unsigned int __cil_tmp88 ;
 6267  struct _IO_STACK_LOCATION *__cil_tmp89 ;
 6268  unsigned int __cil_tmp90 ;
 6269  unsigned int __cil_tmp91 ;
 6270  unsigned int __cil_tmp92 ;
 6271  unsigned int __cil_tmp93 ;
 6272  unsigned int __cil_tmp94 ;
 6273  unsigned int __cil_tmp95 ;
 6274  unsigned int __cil_tmp96 ;
 6275  struct _IO_STACK_LOCATION *__cil_tmp97 ;
 6276  unsigned int __cil_tmp98 ;
 6277  unsigned int __cil_tmp99 ;
 6278  UCHAR __cil_tmp100 ;
 6279  int __cil_tmp101 ;
 6280  int __cil_tmp102 ;
 6281  unsigned int __cil_tmp103 ;
 6282  unsigned int __cil_tmp104 ;
 6283  LIST_ENTRY *__cil_tmp105 ;
 6284  unsigned int __cil_tmp106 ;
 6285  unsigned int __cil_tmp107 ;
 6286  unsigned int __cil_tmp108 ;
 6287  unsigned int __cil_tmp109 ;
 6288  LIST_ENTRY *__cil_tmp110 ;
 6289  unsigned int __cil_tmp111 ;
 6290  unsigned int __cil_tmp112 ;
 6291  KSPIN_LOCK *__cil_tmp113 ;
 6292  unsigned int __cil_tmp114 ;
 6293  unsigned int __cil_tmp115 ;
 6294  KSEMAPHORE *__cil_tmp116 ;
 6295  struct _IO_STACK_LOCATION **mem_117 ;
 6296  BOOLEAN *mem_118 ;
 6297  NTSTATUS *mem_119 ;
 6298  ULONG_PTR *mem_120 ;
 6299  LONG *mem_121 ;
 6300  LONG *mem_122 ;
 6301  LONG *mem_123 ;
 6302  LONG *mem_124 ;
 6303  LONG *mem_125 ;
 6304  ULONG *mem_126 ;
 6305  HANDLE *mem_127 ;
 6306  ULONG *mem_128 ;
 6307  PUNICODE_STRING *mem_129 ;
 6308  PVOID *mem_130 ;
 6309  PVOID *mem_131 ;
 6310  LONG *mem_132 ;
 6311  struct _IO_STACK_LOCATION **mem_133 ;
 6312  struct _IO_STACK_LOCATION **mem_134 ;
 6313  UCHAR *mem_135 ;
 6314  UCHAR *mem_136 ;
 6315
 6316  {
 6317  {
 6318#line 871
 6319  __cil_tmp7 = 24 + 8;
 6320#line 871
 6321  __cil_tmp8 = 0 + __cil_tmp7;
 6322#line 871
 6323  __cil_tmp9 = 64 + __cil_tmp8;
 6324#line 871
 6325  __cil_tmp10 = (unsigned int )Irp;
 6326#line 871
 6327  __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
 6328#line 871
 6329  mem_117 = (struct _IO_STACK_LOCATION **)__cil_tmp11;
 6330#line 871
 6331  irpSp = *mem_117;
 6332#line 878
 6333  __cil_tmp12 = (unsigned int )DisketteExtension;
 6334#line 878
 6335  __cil_tmp13 = __cil_tmp12 + 396;
 6336#line 878
 6337  __cil_tmp14 = (FAST_MUTEX *)__cil_tmp13;
 6338#line 878
 6339  ExAcquireFastMutex(__cil_tmp14);
 6340  }
 6341  {
 6342#line 879
 6343  __cil_tmp15 = (unsigned int )DisketteExtension;
 6344#line 879
 6345  __cil_tmp16 = __cil_tmp15 + 393;
 6346#line 879
 6347  mem_118 = (BOOLEAN *)__cil_tmp16;
 6348#line 879
 6349  __cil_tmp17 = *mem_118;
 6350#line 879
 6351  __cil_tmp18 = (int )__cil_tmp17;
 6352#line 879
 6353  if (__cil_tmp18 == 1) {
 6354    {
 6355#line 880
 6356    __cil_tmp19 = (unsigned int )DisketteExtension;
 6357#line 880
 6358    __cil_tmp20 = __cil_tmp19 + 396;
 6359#line 880
 6360    __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20;
 6361#line 880
 6362    ExReleaseFastMutex(__cil_tmp21);
 6363    }
 6364    {
 6365#line 882
 6366    while (1) {
 6367      while_12_continue: /* CIL Label */ ;
 6368      goto while_12_break;
 6369    }
 6370    while_12_break: /* CIL Label */ ;
 6371    }
 6372#line 884
 6373    myStatus = -1073741101L;
 6374#line 886
 6375    __cil_tmp22 = (unsigned int )Irp;
 6376#line 886
 6377    __cil_tmp23 = __cil_tmp22 + 24;
 6378#line 886
 6379    mem_119 = (NTSTATUS *)__cil_tmp23;
 6380#line 886
 6381    *mem_119 = -1073741101L;
 6382#line 887
 6383    __cil_tmp24 = 24 + 4;
 6384#line 887
 6385    __cil_tmp25 = (unsigned int )Irp;
 6386#line 887
 6387    __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
 6388#line 887
 6389    mem_120 = (ULONG_PTR *)__cil_tmp26;
 6390#line 887
 6391    *mem_120 = 0UL;
 6392#line 888
 6393    return (-1073741101L);
 6394  } else {
 6395
 6396  }
 6397  }
 6398  {
 6399#line 890
 6400  __cil_tmp27 = (unsigned int )DisketteExtension;
 6401#line 890
 6402  __cil_tmp28 = __cil_tmp27 + 396;
 6403#line 890
 6404  __cil_tmp29 = (FAST_MUTEX *)__cil_tmp28;
 6405#line 890
 6406  ExReleaseFastMutex(__cil_tmp29);
 6407  }
 6408  {
 6409#line 891
 6410  while (1) {
 6411    while_13_continue: /* CIL Label */ ;
 6412    goto while_13_break;
 6413  }
 6414  while_13_break: /* CIL Label */ ;
 6415  }
 6416  {
 6417#line 891
 6418  __cil_tmp30 = (unsigned int )DisketteExtension;
 6419#line 891