среда, 5 декабря 2012 г.

WdfFunctions.idc 64bit

Made supplement for WdfFunctions.idc for 64bit versions of KMDF. It seems that my windows server 2012 build 9200 has old Wdf01000.sys so this version of script supports WDFFUNCTIONS with size up to 0x18C only
#include <idc.idc>

static add_struct(size)
{
 auto id, mid;
 id = AddStrucEx(-1,"WDFFUNCTIONS",0);
 if ( -1 == id )
   id = GetStrucIdByName("WDFFUNCTIONS");
 if ( -1 == id )
   return -1;
    mid = AddStrucMember(id,"pfnWdfChildListCreate",    0X0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListGetDevice",    0X8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListRetrievePdo",    0X10,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListRetrieveAddressDescription",    0X18,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListBeginScan",    0X20,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListEndScan",    0X28,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListBeginIteration",    0X30,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListRetrieveNextDevice",    0X38,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListEndIteration",    0X40,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListAddOrUpdateChildDescriptionAsPresent",    0X48,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListUpdateChildDescriptionAsMissing",    0X50,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListUpdateAllChildDescriptionsAsPresent",    0X58,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfChildListRequestChildEject",    0X60,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionCreate",    0X68,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionGetCount",    0X70,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionAdd",    0X78,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionRemove",    0X80,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionRemoveItem",    0X88,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionGetItem",    0X90,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionGetFirstItem",    0X98,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCollectionGetLastItem",    0XA0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCommonBufferCreate",    0XA8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCommonBufferGetAlignedVirtualAddress",    0XB0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCommonBufferGetAlignedLogicalAddress",    0XB8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCommonBufferGetLength",    0XC0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfControlDeviceInitAllocate",    0XC8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfControlDeviceInitSetShutdownNotification",    0XD0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfControlFinishInitializing",    0XD8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDeviceState",    0XE0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetDeviceState",    0XE8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWdmDeviceGetWdfDeviceHandle",    0XF0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceWdmGetDeviceObject",    0XF8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceWdmGetAttachedDevice",    0X100,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceWdmGetPhysicalDevice",    0X108,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceWdmDispatchPreprocessedIrp",    0X110,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAddDependentUsageDeviceObject",    0X118,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAddRemovalRelationsPhysicalDevice",    0X120,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceRemoveRemovalRelationsPhysicalDevice",    0X128,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceClearRemovalRelationsDevices",    0X130,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDriver",    0X138,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceRetrieveDeviceName",    0X140,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAssignMofResourceName",    0X148,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetIoTarget",    0X150,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDevicePnpState",    0X158,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDevicePowerState",    0X160,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDevicePowerPolicyState",    0X168,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAssignS0IdleSettings",    0X170,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAssignSxWakeSettings",    0X178,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceOpenRegistryKey",    0X180,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetSpecialFileSupport",    0X188,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetCharacteristics",    0X190,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetCharacteristics",    0X198,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetAlignmentRequirement",    0X1A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetAlignmentRequirement",    0X1A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitFree",    0X1B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPnpPowerEventCallbacks",    0X1B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPowerPolicyEventCallbacks",    0X1C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPowerPolicyOwnership",    0X1C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitRegisterPnpStateChangeCallback",    0X1D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitRegisterPowerStateChangeCallback",    0X1D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitRegisterPowerPolicyStateChangeCallback",    0X1E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetIoType",    0X1E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetExclusive",    0X1F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPowerNotPageable",    0X1F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPowerPageable",    0X200,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetPowerInrush",    0X208,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetDeviceType",    0X210,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitAssignName",    0X218,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitAssignSDDLString",    0X220,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetDeviceClass",    0X228,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetCharacteristics",    0X230,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetFileObjectConfig",    0X238,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetRequestAttributes",    0X240,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitAssignWdmIrpPreprocessCallback",    0X248,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceInitSetIoInCallerContextCallback",    0X250,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceCreate",    0X258,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetStaticStopRemove",    0X260,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceCreateDeviceInterface",    0X268,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetDeviceInterfaceState",    0X270,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceRetrieveDeviceInterfaceString",    0X278,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceCreateSymbolicLink",    0X280,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceQueryProperty",    0X288,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAllocAndQueryProperty",    0X290,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetPnpCapabilities",    0X298,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetPowerCapabilities",    0X2A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetBusInformationForChildren",    0X2A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceIndicateWakeStatus",    0X2B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceSetFailed",    0X2B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceStopIdle",    0X2C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceResumeIdle",    0X2C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetFileObject",    0X2D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceEnqueueRequest",    0X2D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetDefaultQueue",    0X2E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceConfigureRequestDispatching",    0X2E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerCreate",    0X2F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerGetMaximumLength",    0X2F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerGetMaximumScatterGatherElements",    0X300,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerSetMaximumScatterGatherElements",    0X308,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionCreate",    0X310,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionInitialize",    0X318,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionInitializeUsingRequest",    0X320,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionExecute",    0X328,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionRelease",    0X330,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionDmaCompleted",    0X338,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionDmaCompletedWithLength",    0X340,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionDmaCompletedFinal",    0X348,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionGetBytesTransferred",    0X350,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionSetMaximumLength",    0X358,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionGetRequest",    0X360,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionGetCurrentDmaTransferLength",    0X368,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaTransactionGetDevice",    0X370,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDpcCreate",    0X378,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDpcEnqueue",    0X380,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDpcCancel",    0X388,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDpcGetParentObject",    0X390,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDpcWdmGetDpc",    0X398,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverCreate",    0X3A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverGetRegistryPath",    0X3A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverWdmGetDriverObject",    0X3B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverOpenParametersRegistryKey",    0X3B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWdmDriverGetWdfDriverHandle",    0X3C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverRegisterTraceInfo",    0X3C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverRetrieveVersionString",    0X3D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverIsVersionAvailable",    0X3D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitWdmGetPhysicalDevice",    0X3E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitOpenRegistryKey",    0X3E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitQueryProperty",    0X3F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitAllocAndQueryProperty",    0X3F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitSetEventCallbacks",    0X400,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitSetFilter",    0X408,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoInitSetDefaultChildListConfig",    0X410,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoQueryForInterface",    0X418,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoGetDefaultChildList",    0X420,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoAddStaticChild",    0X428,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoLockStaticChildListForIteration",    0X430,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoRetrieveNextStaticChild",    0X438,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFdoUnlockStaticChildListFromIteration",    0X440,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFileObjectGetFileName",    0X448,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFileObjectGetFlags",    0X450,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFileObjectGetDevice",    0X458,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfFileObjectWdmGetFileObject",    0X460,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptCreate",    0X468,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptQueueDpcForIsr",    0X470,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptSynchronize",    0X478,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptAcquireLock",    0X480,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptReleaseLock",    0X488,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptEnable",    0X490,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptDisable",    0X498,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptWdmGetInterrupt",    0X4A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptGetInfo",    0X4A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptSetPolicy",    0X4B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptGetDevice",    0X4B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueCreate",    0X4C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueGetState",    0X4C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueStart",    0X4D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueStop",    0X4D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueStopSynchronously",    0X4E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueGetDevice",    0X4E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueRetrieveNextRequest",    0X4F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueRetrieveRequestByFileObject",    0X4F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueFindRequest",    0X500,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueRetrieveFoundRequest",    0X508,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueDrainSynchronously",    0X510,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueDrain",    0X518,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueuePurgeSynchronously",    0X520,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueuePurge",    0X528,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueReadyNotify",    0X530,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetCreate",    0X538,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetOpen",    0X540,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetCloseForQueryRemove",    0X548,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetClose",    0X550,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetStart",    0X558,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetStop",    0X560,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetGetState",    0X568,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetGetDevice",    0X570,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetQueryTargetProperty",    0X578,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetAllocAndQueryTargetProperty",    0X580,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetQueryForInterface",    0X588,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetWdmGetTargetDeviceObject",    0X590,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetWdmGetTargetPhysicalDevice",    0X598,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetWdmGetTargetFileObject",    0X5A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetWdmGetTargetFileHandle",    0X5A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetSendReadSynchronously",    0X5B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetFormatRequestForRead",    0X5B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetSendWriteSynchronously",    0X5C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetFormatRequestForWrite",    0X5C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetSendIoctlSynchronously",    0X5D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetFormatRequestForIoctl",    0X5D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetSendInternalIoctlSynchronously",    0X5E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetFormatRequestForInternalIoctl",    0X5E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetSendInternalIoctlOthersSynchronously",    0X5F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoTargetFormatRequestForInternalIoctlOthers",    0X5F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryCreate",    0X600,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryCreatePreallocated",    0X608,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryGetBuffer",    0X610,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryAssignBuffer",    0X618,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryCopyToBuffer",    0X620,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryCopyFromBuffer",    0X628,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfLookasideListCreate",    0X630,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfMemoryCreateFromLookaside",    0X638,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceMiniportCreate",    0X640,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDriverMiniportUnload",    0X648,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectGetTypedContextWorker",    0X650,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectAllocateContext",    0X658,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectContextGetObject",    0X660,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectReferenceActual",    0X668,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectDereferenceActual",    0X670,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectCreate",    0X678,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectDelete",    0X680,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectQuery",    0X688,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAllocate",    0X690,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitSetEventCallbacks",    0X698,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAssignDeviceID",    0X6A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAssignInstanceID",    0X6A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAddHardwareID",    0X6B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAddCompatibleID",    0X6B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAddDeviceText",    0X6C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitSetDefaultLocale",    0X6C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAssignRawDevice",    0X6D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoMarkMissing",    0X6D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoRequestEject",    0X6E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoGetParent",    0X6E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoRetrieveIdentificationDescription",    0X6F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoRetrieveAddressDescription",    0X6F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoUpdateAddressDescription",    0X700,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoAddEjectionRelationsPhysicalDevice",    0X708,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoRemoveEjectionRelationsPhysicalDevice",    0X710,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoClearEjectionRelationsDevices",    0X718,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceAddQueryInterface",    0X720,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryOpenKey",    0X728,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryCreateKey",    0X730,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryClose",    0X738,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryWdmGetHandle",    0X740,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryRemoveKey",    0X748,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryRemoveValue",    0X750,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryValue",    0X758,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryMemory",    0X760,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryMultiString",    0X768,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryUnicodeString",    0X770,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryString",    0X778,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryQueryULong",    0X780,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignValue",    0X788,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignMemory",    0X790,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignMultiString",    0X798,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignUnicodeString",    0X7A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignString",    0X7A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRegistryAssignULong",    0X7B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestCreate",    0X7B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestCreateFromIrp",    0X7C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestReuse",    0X7C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestChangeTarget",    0X7D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestFormatRequestUsingCurrentType",    0X7D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestWdmFormatUsingStackLocation",    0X7E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestSend",    0X7E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetStatus",    0X7F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestMarkCancelable",    0X7F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestUnmarkCancelable",    0X800,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestIsCanceled",    0X808,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestCancelSentRequest",    0X810,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestIsFrom32BitProcess",    0X818,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestSetCompletionRoutine",    0X820,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetCompletionParams",    0X828,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestAllocateTimer",    0X830,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestComplete",    0X838,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestCompleteWithPriorityBoost",    0X840,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestCompleteWithInformation",    0X848,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetParameters",    0X850,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveInputMemory",    0X858,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveOutputMemory",    0X860,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveInputBuffer",    0X868,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveOutputBuffer",    0X870,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveInputWdmMdl",    0X878,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveOutputWdmMdl",    0X880,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveUnsafeUserInputBuffer",    0X888,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRetrieveUnsafeUserOutputBuffer",    0X890,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestSetInformation",    0X898,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetInformation",    0X8A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetFileObject",    0X8A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestProbeAndLockUserBufferForRead",    0X8B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestProbeAndLockUserBufferForWrite",    0X8B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetRequestorMode",    0X8C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestForwardToIoQueue",    0X8C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestGetIoQueue",    0X8D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestRequeue",    0X8D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestStopAcknowledge",    0X8E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestWdmGetIrp",    0X8E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListSetSlotNumber",    0X8F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListSetInterfaceType",    0X8F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListAppendIoResList",    0X900,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListInsertIoResList",    0X908,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListGetCount",    0X910,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListGetIoResList",    0X918,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListRemove",    0X920,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceRequirementsListRemoveByIoResList",    0X928,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListCreate",    0X930,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListAppendDescriptor",    0X938,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListInsertDescriptor",    0X940,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListUpdateDescriptor",    0X948,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListGetCount",    0X950,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListGetDescriptor",    0X958,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListRemove",    0X960,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoResourceListRemoveByDescriptor",    0X968,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListAppendDescriptor",    0X970,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListInsertDescriptor",    0X978,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListGetCount",    0X980,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListGetDescriptor",    0X988,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListRemove",    0X990,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfCmResourceListRemoveByDescriptor",    0X998,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfStringCreate",    0X9A0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfStringGetUnicodeString",    0X9A8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectAcquireLock",    0X9B0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfObjectReleaseLock",    0X9B8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWaitLockCreate",    0X9C0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWaitLockAcquire",    0X9C8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWaitLockRelease",    0X9D0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfSpinLockCreate",    0X9D8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfSpinLockAcquire",    0X9E0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfSpinLockRelease",    0X9E8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfTimerCreate",    0X9F0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfTimerStart",    0X9F8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfTimerStop",    0XA00,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfTimerGetParentObject",    0XA08,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceCreate",    0XA10,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceRetrieveInformation",    0XA18,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceGetDeviceDescriptor",    0XA20,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceRetrieveConfigDescriptor",    0XA28,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceQueryString",    0XA30,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceAllocAndQueryString",    0XA38,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceFormatRequestForString",    0XA40,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceGetNumInterfaces",    0XA48,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceSelectConfig",    0XA50,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceWdmGetConfigurationHandle",    0XA58,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceRetrieveCurrentFrameNumber",    0XA60,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceSendControlTransferSynchronously",    0XA68,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceFormatRequestForControlTransfer",    0XA70,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceIsConnectedSynchronous",    0XA78,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceResetPortSynchronously",    0XA80,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceCyclePortSynchronously",    0XA88,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceFormatRequestForCyclePort",    0XA90,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceSendUrbSynchronously",    0XA98,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceFormatRequestForUrb",    0XAA0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeGetInformation",    0XAA8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeIsInEndpoint",    0XAB0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeIsOutEndpoint",    0XAB8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeGetType",    0XAC0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeSetNoMaximumPacketSizeCheck",    0XAC8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeWriteSynchronously",    0XAD0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeFormatRequestForWrite",    0XAD8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeReadSynchronously",    0XAE0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeFormatRequestForRead",    0XAE8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeConfigContinuousReader",    0XAF0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeAbortSynchronously",    0XAF8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeFormatRequestForAbort",    0XB00,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeResetSynchronously",    0XB08,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeFormatRequestForReset",    0XB10,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeSendUrbSynchronously",    0XB18,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeFormatRequestForUrb",    0XB20,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetInterfaceNumber",    0XB28,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetNumEndpoints",    0XB30,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetDescriptor",    0XB38,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceSelectSetting",    0XB40,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetEndpointInformation",    0XB48,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetDeviceGetInterface",    0XB50,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetConfiguredSettingIndex",    0XB58,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetNumConfiguredPipes",    0XB60,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetConfiguredPipe",    0XB68,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfUsbTargetPipeWdmGetPipeHandle",    0XB70,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfVerifierDbgBreakPoint",    0XB78,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfVerifierKeBugCheck",    0XB80,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiProviderCreate",    0XB88,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiProviderGetDevice",    0XB90,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiProviderIsEnabled",    0XB98,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiProviderGetTracingHandle",    0XBA0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceCreate",    0XBA8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceRegister",    0XBB0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceDeregister",    0XBB8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceGetDevice",    0XBC0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceGetProvider",    0XBC8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWmiInstanceFireEvent",    0XBD0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWorkItemCreate",    0XBD8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWorkItemEnqueue",    0XBE0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWorkItemGetParentObject",    0XBE8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfWorkItemFlush",    0XBF0,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
 if ( size == 0x17f )
   return id;
    mid = AddStrucMember(id,"pfnWdfCommonBufferCreateWithConfig",    0XBF8,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerGetFragmentLength",    0XC00,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDmaEnablerWdmGetDmaAdapter",    0XC08,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
 if ( size == 0x182 )
   return id;
    mid = AddStrucMember(id,"pfnWdfUsbInterfaceGetNumSettings",    0XC10,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
 if ( size == 0x183 )
   return id;
    mid = AddStrucMember(id,"pfnWdfDeviceRemoveDependentUsageDeviceObject",    0XC18,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfDeviceGetSystemPowerAction",    0XC20,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfInterruptSetExtendedPolicy",    0XC28,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfIoQueueAssignForwardProgressPolicy",    0XC30,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAssignContainerID",    0XC38,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfPdoInitAllowForwardingRequestToParent",    0XC40,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestMarkCancelableEx",    0XC48,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestIsReserved",    0XC50,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
    mid = AddStrucMember(id,"pfnWdfRequestForwardToParentDeviceIoQueue",    0XC58,    0x35500400,    0XFFFFFFFFFFFFFFFF,    8,    0XFFFFFFFFFFFFFFFF,    0X0,    0x000009);
  return id;
}

static main(void)
{
  auto data_start;
  auto data_end;
  auto idx;
  // out data
  auto wdf_size;
  auto wdf_func;

  data_end = data_start = BADADDR;
  wdf_size = 0;
  wdf_func = BADADDR;
  // find .data section
  for ( idx = FirstSeg(); idx != BADADDR; idx = NextSeg(idx) )
  {
    auto sname;
    sname = SegName(idx);
    if ( (strlen(sname) == 5) &&
         strstr(sname, ".data") != 0
       )
    {
      data_start = SegStart(idx);
      data_end   = SegEnd(idx);
      break;
    }
  }
  if ( data_start == BADADDR )
    return;
  // find "KmdfLibrary" unicode string in .data section
  idx = data_start;
  while(1)
  {
    auto addr, id;
    idx = FindBinary(idx, SEARCH_DOWN, "4B 00 6D 00 64 00 66 00 4C 00 69 00 62 00 72 00 61 00 72 00 79 00");
    if ( idx == BADADDR )
      break;
    Message("found at %X\n", idx);
    addr = DfirstB(idx);
    if ( addr != BADADDR )
    {
      id = 0;
      wdf_size = Dword(addr + 0x14);
      wdf_func = Qword(addr + 0x18);
      if ( wdf_size != 0 )
      {
        id = add_struct(wdf_size);
      }
      if ( id != 0 )
      {
        auto ssize;
        ssize = GetStrucSize(id);
        MakeUnknown(wdf_func, ssize, 0);
        if ( MakeData(wdf_func, FF_STRU, ssize, id) )
        {
          return;
        }
        Message("MakeData failed at %X, size %X\n", wdf_func, ssize);
      }
    }
    idx = idx + 22; /* length of unicode string KmdfLibrary */
  }
}

Комментариев нет:

Отправить комментарий