ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pnp.idl
Go to the documentation of this file.
00001 /*
00002  * Plug and Play Manager RPC interface definition
00003  */
00004 
00005 #include <ms-dtyp.idl>
00006 
00007 const unsigned long PNP_MAX_STRING_LEN = 32767;
00008 const unsigned long PNP_MAX_DEVICE_ID_LEN = 200;
00009 const unsigned long PNP_MAX_GUID_STRING_LEN = 39;
00010 const unsigned long PNP_MAX_DEVINTERFACE_LEN = PNP_MAX_STRING_LEN;
00011 const unsigned long PNP_MAX_CULTURE_NAME_LEN = 85;
00012 const unsigned long PNP_MAX_CM_PATH = 360;
00013 const unsigned long PNP_MAX_PROP_SIZE = 65534;
00014 const unsigned long PNP_MAX_PROP_COUNT = 32767;
00015 const unsigned long PNP_MAX_BUFFER_SIZE = 16000000;
00016 
00017 cpp_quote("#ifndef _CFGMGR32_H_")
00018 typedef unsigned long RESOURCEID;
00019 
00020 typedef struct _HWPROFILEINFO {
00021     DWORD HWPI_ulHWProfile;
00022     WCHAR HWPI_szFriendlyName[80];
00023     DWORD HWPI_dwFlags;
00024 } HWPROFILEINFO;
00025 
00026 cpp_quote("#endif")
00027 typedef unsigned long DEVPROPTYPE;
00028 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
00029 typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
00030 typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
00031 typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
00032 typedef PNP_PROP_SIZE *PPNP_PROP_SIZE;
00033 typedef PNP_PROP_COUNT *PPNP_PROP_COUNT;
00034 typedef PNP_RPC_STRING_LEN *PPNP_RPC_STRING_LEN;
00035 typedef PNP_RPC_BUFFER_SIZE *PPNP_RPC_BUFFER_SIZE;
00036 
00037 cpp_quote("#ifndef _CFG_INCLUDED_")
00038 
00039 typedef enum _PNP_VETO_TYPE {
00040     PNP_VetoTypeUnknown = 0,
00041     PNP_VetoLegacyDevice = 1,
00042     PNP_VetoPendingClose = 2,
00043     PNP_VetoWindowsApp = 3,
00044     PNP_VetoWindowsService = 4,
00045     PNP_VetoOutstandingOpen = 5,
00046     PNP_VetoDevice = 6,
00047     PNP_VetoDriver = 7,
00048     PNP_VetoIllegalDeviceRequest = 8,
00049     PNP_VetoInsufficientPower = 9,
00050     PNP_VetoNonDisableable = 10,
00051     PNP_VetoLegacyDriver = 11,
00052     PNP_VetoInsufficientRights = 12,
00053 } *PPNP_VETO_TYPE;
00054 
00055 cpp_quote("#endif")
00056 
00057 cpp_quote("#if 0")
00058 
00059 typedef struct _BUSNUMBER_DES {
00060     DWORD BUSD_Count;
00061     DWORD BUSD_Type;
00062     DWORD BUSD_Flags;
00063     DWORD BUSD_Alloc_Base;
00064     DWORD BUSD_Alloc_End;
00065 } BUSNUMBER_DES, *PBUSNUMBER_DES;
00066 
00067 typedef struct _BUSNUMBER_RANGE {
00068     DWORD BUSR_Min;
00069     DWORD BUSR_Max;
00070     DWORD BUSR_nBusNumbers;
00071     DWORD BUSR_Flags;
00072 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
00073 
00074 typedef struct _BUSNUMBER_RESOURCE {
00075     BUSNUMBER_DES BusNumber_Header;
00076     BUSNUMBER_RANGE BusNumber_Data[1];
00077 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
00078 
00079 typedef struct _CS_DES {
00080     DWORD CSD_SignatureLength;
00081     DWORD CSD_LegacyDataOffset;
00082     DWORD CSD_LegacyDataSize;
00083     DWORD CSD_Flags;
00084     GUID CSD_ClassGuid;
00085     BYTE CSD_Signature[1];
00086 } CS_DES, *PCS_DES;
00087 
00088 typedef struct _CS_RESOURCE {
00089     CS_DES CS_Header;
00090 } CS_RESOURCE, *PCS_RESOURCE;
00091 
00092 typedef struct _DEVPRIVATE_DES {
00093     DWORD PD_Count;
00094     DWORD PD_Type;
00095     DWORD PD_Data1;
00096     DWORD PD_Data2;
00097     DWORD PD_Data3;
00098     DWORD PD_Flags;
00099 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
00100 
00101 typedef struct _DEVPRIVATE_RANGE {
00102     DWORD PR_Data1;
00103     DWORD PR_Data2;
00104     DWORD PR_Data3;
00105 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
00106 
00107 typedef struct _DEVPRIVATE_RESOURCE {
00108     DEVPRIVATE_DES PRV_Header;
00109     DEVPRIVATE_RANGE PRV_Data[1];
00110 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
00111 
00112 typedef struct _DMA_DES {
00113     DWORD DD_Count;
00114     DWORD DD_Type;
00115     DWORD DD_Flags;
00116     unsigned long DD_Alloc_Chan;
00117 } DMA_DES, *PDMA_DES;
00118 
00119 typedef struct _DMA_RANGE {
00120     DWORD DR_Min;
00121     DWORD DR_Max;
00122     DWORD DR_Flags;
00123 } DMA_RANGE, *PDMA_RANGE;
00124 
00125 typedef struct _DMA_RESOURCE {
00126     DMA_DES DMA_Header;
00127     DMA_RANGE DMA_Data[1];
00128 } DMA_RESOURCE, *PDMA_RESOURCE;
00129 
00130 typedef struct _IO_DES {
00131     DWORD IOD_Count;
00132     DWORD IOD_Type;
00133     unsigned __int64 IOD_AllocBase;
00134     unsigned __int64 IOD_AllocEnd;
00135     DWORD IOD_DesFlags;
00136 } IO_DES, *PIO_DES;
00137 
00138 typedef struct _IO_RANGE {
00139     unsigned __int64 IOR_Align;
00140     DWORD IOR_nPorts;
00141     unsigned __int64 IOR_Min;
00142     unsigned __int64 IOR_Max;
00143     DWORD IOR_RangeFlags;
00144     unsigned __int64 IOR_Alias;
00145 } IO_RANGE, *PIO_RANGE;
00146 
00147 typedef struct _IO_RESOURCE {
00148     IO_DES IO_Header;
00149     IO_RANGE IO_Data[1];
00150 } IO_RESOURCE, *PIO_RESOURCE;
00151 
00152 typedef struct _IRQ_DES {
00153     DWORD IRQD_Count;
00154     DWORD IRQD_Type;
00155     DWORD IRQD_Flags;
00156     DWORD IRQD_Alloc_Num;
00157     DWORD IRQD_Affinity;
00158 } IRQ_DES, *PIRQ_DES;
00159 
00160 typedef struct _IRQ_RANGE {
00161     DWORD IRQR_Min;
00162     DWORD IRQR_Max;
00163     DWORD IRQR_Flags;
00164 } IRQ_RANGE, *PIRQ_RANGE;
00165 
00166 typedef struct _IRQ_RESOURCE {
00167     IRQ_DES IO_Header;
00168     IRQ_RANGE IO_Data[1];
00169 } IRQ_RESOURCE, *PIRQ_RESOURCE;
00170 
00171 typedef struct _MEM_DES {
00172     DWORD MD_Count;
00173     DWORD MD_Type;
00174     unsigned __int64 MD_Alloc_Base;
00175     unsigned __int64 MD_Alloc_End;
00176     DWORD MD_Flags;
00177     DWORD Reserved;
00178 } MEM_DES, *PMEM_DES;
00179 
00180 typedef struct _MEM_RANGE {
00181     __int64 MR_Align;
00182     DWORD MR_nBytes;
00183     __int64 MR_Min;
00184     __int64 MR_Max;
00185     DWORD MR_Flags;
00186     DWORD MR_Reserved;
00187 } MEM_RANGE, *PMEM_RANGE;
00188 
00189 typedef struct _MEM_RESOURCE {
00190     MEM_DES MEM_Header;
00191     MEM_RANGE MEM_Data[1];
00192 } MEM_RESOURCE, *PMEM_RESOURCE;
00193 
00194 typedef struct _MFCARD_DES {
00195     DWORD PMF_Count;
00196     DWORD PMF_Type;
00197     DWORD PMF_Flags;
00198     BYTE PMF_ConfigOptions;
00199     BYTE PMF_IoResourceIndex;
00200     BYTE PMF_Reserved[2];
00201     DWORD PMF_ConfigRegisterBase;
00202 } MFCARD_DES, *PMFCARD_DES;
00203 
00204 typedef struct _MFCARD_RESOURCE {
00205     MFCARD_DES MfCard_Header;
00206 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
00207 
00208 typedef struct _PCCARD_DES {
00209     DWORD PCD_Count;
00210     DWORD PCD_Type;
00211     DWORD PCD_Flags;
00212     BYTE PCD_ConfigIndex;
00213     BYTE PCD_Reserved[3];
00214     DWORD PCD_MemoryCardBase1;
00215     DWORD PCD_MemoryCardBase2;
00216 } PCCARD_DES, *PPCCARD_DES;
00217 
00218 typedef struct _PCCARD_RESOURCE {
00219     PCCARD_DES PcCard_Header;
00220 } PCCARD_RESOURCE, *PPCARD_RESOURCE;
00221 
00222 cpp_quote("#endif")
00223 
00224 typedef struct _PNP_CONFLICT_ENTRY {
00225     DWORD DeviceInstance;
00226     DWORD DeviceFlags;
00227     DWORD ResourceType;
00228     __int64 ResourceStart;
00229     __int64 ResourceEnd;
00230     DWORD ResourceFlags;
00231 } PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
00232 
00233 typedef struct _PNP_CONFLICT_LIST {
00234     DWORD Reserved1;
00235     DWORD Reserved2;
00236     DWORD ConflictsCounted;
00237     DWORD ConflictsListed;
00238     DWORD RequiredBufferSize;
00239     PNP_CONFLICT_ENTRY ConflictEntry[1];
00240 } PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
00241 
00242 typedef struct _PNP_CONFLICT_STRINGS {
00243     DWORD NullDeviceInstance;
00244     WCHAR DeviceInstanceStrings[1];
00245 } PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
00246 
00247 typedef struct _DEVPROPKEY {
00248     GUID fmtid;
00249     DWORD pid;
00250 } DEVPROPKEY;
00251 
00252 [
00253   uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
00254   version(1.0),
00255   pointer_default(unique),
00256   endpoint("ncacn_np:[\\pipe\\plugplay]")
00257   #ifndef __midl
00258   ,explicit_handle
00259   #endif
00260 ]
00261 interface pnp
00262 {
00263     /* Function 0 */
00264     DWORD PNP_Disconnect(
00265         [in] handle_t hBinding); /* FIXME */
00266 
00267     /* Function 1 */
00268     DWORD PNP_Connect(
00269         [in] handle_t hBinding); /* FIXME */
00270 
00271     /* Function 2 */
00272     DWORD PNP_GetVersion(
00273         [in] handle_t hBinding,
00274         [out] WORD *pVersion);
00275 
00276     /* Function 3 */
00277     DWORD PNP_GetGlobalState(
00278         [in] handle_t hBinding,
00279         [out] DWORD *pulState,
00280         [in] DWORD ulFlags);
00281 
00282     /* Function 4 */
00283     DWORD PNP_InitDetection(
00284         [in] handle_t hBinding);
00285 
00286     /* Function 5 */
00287     DWORD PNP_ReportLogOn(
00288         [in] handle_t hBinding,
00289         [in] BOOL Admin,
00290         [in] DWORD ProcessId);
00291 
00292     /* Function 6 */
00293     DWORD PNP_ValidateDeviceInstance(
00294         [in] handle_t hBinding,
00295         [in, string, ref] LPWSTR pDeviceID,
00296         [in] DWORD ulFlags);
00297 
00298     /* Function 7 */
00299     DWORD PNP_GetRootDeviceInstance(
00300         [in] handle_t hBinding,
00301         [out, string, size_is(ulLength)] LPWSTR pDeviceID,
00302         [in] PNP_RPC_STRING_LEN ulLength);
00303 
00304     /* Function 8 */
00305     cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE  0x1")
00306     cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE   0x2")
00307     cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
00308     DWORD PNP_GetRelatedDeviceInstance(
00309         [in] handle_t hBinding,
00310         [in] DWORD ulRelationship,
00311         [in, string, ref] LPWSTR pDeviceID,
00312         [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
00313         [in, out] PNP_RPC_STRING_LEN *pulLength,
00314         [in] DWORD ulFlags);
00315 
00316     /* Function 9 */
00317     cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
00318     cpp_quote("#define PNP_CLASS_SUBKEYS      0x2")
00319     DWORD PNP_EnumerateSubKeys(
00320         [in] handle_t hBinding,
00321         [in] DWORD ulBranch,
00322         [in] DWORD ulIndex,
00323         [out, string, size_is(ulLength)] LPWSTR Buffer,
00324         [in] PNP_RPC_STRING_LEN ulLength,
00325         [out] PNP_RPC_STRING_LEN *pulRequiredLen,
00326         [in] DWORD ulFlags);
00327 
00328     /* Function 10 */
00329     DWORD PNP_GetDeviceList(
00330         [in] handle_t hBinding,
00331         [in, string, unique] LPWSTR pszFilter,
00332         [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
00333         [in, out] PNP_RPC_STRING_LEN *pulLength,
00334         [in] DWORD ulFlags);
00335 
00336     /* Function 11 */
00337     DWORD PNP_GetDeviceListSize(
00338         [in] handle_t hBinding,
00339         [in, string, unique] LPWSTR pszFilter,
00340         [out] PNP_RPC_BUFFER_SIZE *pulLen,
00341         [in] DWORD ulFlags);
00342 
00343     /* Function 12 */
00344     DWORD PNP_GetDepth(
00345         [in] handle_t hBinding,
00346         [in, string, ref] LPWSTR pszDeviceID,
00347         [out] DWORD *pulDepth,
00348         [in] DWORD ulFlags);
00349 
00350     /* Function 13 */
00351     DWORD PNP_GetDeviceRegProp(
00352         [in] handle_t hBinding,
00353         [in, string, ref] LPWSTR pDeviceID,
00354         [in] DWORD ulProperty,
00355         [in, out] DWORD *pulRegDataType,
00356         [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
00357         [in, out] PNP_PROP_SIZE *pulTransferLen,
00358         [in, out] PNP_PROP_SIZE *pulLength,
00359         [in] DWORD ulFlags);
00360 
00361     /* Function 14 */
00362     DWORD PNP_SetDeviceRegProp(
00363         [in] handle_t hBinding,
00364         [in, string, ref] LPWSTR pDeviceId,
00365         [in] DWORD ulProperty,
00366         [in] DWORD ulDataType,
00367         [in, size_is(ulLength)] BYTE *Buffer,
00368         [in] PNP_PROP_SIZE ulLength,
00369         [in] DWORD ulFlags);
00370 
00371     /* Function 15 */
00372     DWORD PNP_GetClassInstance(
00373         [in] handle_t hBinding,
00374         [in, string, ref] LPWSTR pDeviceId,
00375         [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
00376         [in] PNP_RPC_STRING_LEN ulLength);
00377 
00378     /* Function 16 */
00379     DWORD PNP_CreateKey(
00380         [in] handle_t hBinding,
00381         [in, string, ref] LPWSTR pszSubKey,
00382         [in] DWORD samDesired,
00383         [in] DWORD ulFlags);
00384 
00385     /* Function 17 */
00386     DWORD PNP_DeleteRegistryKey(
00387         [in] handle_t hBinding,
00388         [in, string, ref] LPWSTR pszDeviceID,
00389         [in, string, ref] LPWSTR pszParentKey,
00390         [in, string, ref] LPWSTR pszChildKey,
00391         [in] DWORD ulFlags);
00392 
00393     /* Function 18 */
00394     DWORD PNP_GetClassCount(
00395         [in] handle_t hBinding,
00396         [out] DWORD *pulClassCount,
00397         [in] DWORD ulFlags);
00398 
00399     /* Function 19 */
00400     DWORD PNP_GetClassName(
00401         [in] handle_t hBinding,
00402         [in, string, ref] LPWSTR pszClassGuid,
00403         [out, string, size_is(*pulLength)] LPWSTR Buffer,
00404         [in, out] PNP_RPC_STRING_LEN *pulLength,
00405         [in] DWORD ulFlags);
00406 
00407     /* Function 20 */
00408     DWORD PNP_DeleteClassKey(
00409         [in] handle_t hBinding,
00410         [in, string, ref] LPWSTR pszClassGuid,
00411         [in] DWORD ulFlags);
00412 
00413     /* Function 21 */
00414     DWORD PNP_GetInterfaceDeviceAlias(
00415         [in] handle_t hBinding,
00416         [in, string, ref] LPWSTR pszInterfaceDevice,
00417         [in] GUID *AliasInterfaceGuid,
00418         [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
00419         [in, out] PNP_RPC_STRING_LEN *pulLength,
00420         [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
00421         [in] DWORD ulFlags);
00422 
00423     /* Function 22 */
00424     DWORD PNP_GetInterfaceDeviceList(
00425         [in] handle_t hBinding,
00426         [in] GUID *InterfaceGuid,
00427         [in, string, unique] LPWSTR pszDeviceID,
00428         [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
00429         [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
00430         [in] DWORD ulFlags);
00431 
00432     /* Function 23 */
00433     DWORD PNP_GetInterfaceDeviceListSize(
00434         [in] handle_t hBinding,
00435         [out] PNP_RPC_BUFFER_SIZE *pulLen,
00436         [in] GUID *InterfaceGuid,
00437         [in, string, unique] LPWSTR pszDeviceID,
00438         [in] DWORD ulFlags);
00439 
00440     /* Function 24 */
00441     DWORD PNP_RegisterDeviceClassAssociation(
00442         [in] handle_t hBinding,
00443         [in, string, unique] LPWSTR pszDeviceID,
00444         [in] GUID *InterfaceGuid,
00445         [in, string, unique] LPWSTR pszReference,
00446         [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
00447         [in, out] PNP_RPC_STRING_LEN *pulLength,
00448         [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
00449         [in] DWORD ulFlags);
00450 
00451     /* Function 25 */
00452     DWORD PNP_UnregisterDeviceClassAssociation(
00453         [in] handle_t hBinding,
00454         [in, string, unique] LPWSTR pszInterfaceDevice,
00455         [in] DWORD ulFlags);
00456 
00457     /* Function 26 */
00458     DWORD PNP_GetClassRegProp(
00459         [in] handle_t hBinding,
00460         [in, string, ref] LPWSTR pszClassGuid,
00461         [in] DWORD ulProperty,
00462         [in, out] DWORD *pulRegDataType,
00463         [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
00464         [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
00465         [in, out] PNP_RPC_STRING_LEN *pulLength,
00466         [in] DWORD ulFlags);
00467 
00468     /* Function 27 */
00469     DWORD PNP_SetClassRegProp(
00470         [in] handle_t hBinding,
00471         [in, string, ref] LPWSTR pszClassGuid,
00472         [in] DWORD ulProperty,
00473         [in] DWORD ulDataType,
00474         [in, size_is(ulLength)] BYTE *Buffer,
00475         [in] PNP_PROP_SIZE ulLength,
00476         [in] DWORD ulFlags);
00477 
00478     /* Function 28 */
00479     DWORD PNP_CreateDevInst(
00480         [in] handle_t hBinding,
00481         [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
00482         [in, string, ref] LPWSTR pszParentDeviceID,
00483         [in] PNP_RPC_STRING_LEN ulLength,
00484         [in] DWORD ulFlags);
00485 
00486     /* Function 29 */
00487     cpp_quote("#define PNP_DEVINST_MOVE        0x2")
00488     cpp_quote("#define PNP_DEVINST_SETUP       0x3")
00489     cpp_quote("#define PNP_DEVINST_ENABLE      0x4")
00490     cpp_quote("#define PNP_DEVINST_DISABLE     0x5")
00491     cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
00492     DWORD PNP_DeviceInstanceAction(
00493         [in] handle_t hBinding,
00494         [in] DWORD ulAction,
00495         [in] DWORD ulFlags,
00496         [in, string, unique] LPWSTR pszDeviceInstance1,
00497         [in, string, unique] LPWSTR pszDeviceInstance2);
00498 
00499     /* Function 30 */
00500     DWORD PNP_GetDeviceStatus(
00501         [in] handle_t hBinding,
00502         [in, string, unique] LPWSTR pDeviceID,
00503         [out] DWORD *pulStatus,
00504         [out] DWORD *pulProblem,
00505         [in] DWORD ulFlags);
00506 
00507     /* Function 31 */
00508     DWORD PNP_SetDeviceProblem(
00509         [in] handle_t hBinding,
00510         [in, string, unique] LPWSTR pDeviceID,
00511         [in] DWORD ulProblem,
00512         [in] DWORD ulFlags);
00513 
00514     /* Function 32 */
00515     DWORD PNP_DisableDevInst(
00516         [in] handle_t hBinding,
00517         [in, string, unique] LPWSTR pDeviceID,
00518         [in, out, unique] PPNP_VETO_TYPE pVetoType,
00519         [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
00520         [in] DWORD ulNameLength,
00521         [in] DWORD ulFlags);
00522 
00523     /* Function 33 */
00524     DWORD PNP_UninstallDevInst(
00525         [in] handle_t hBinding,
00526         [in, string, unique] LPWSTR pDeviceID,
00527         [in] DWORD ulFlags);
00528 
00529     /* Function 34 */
00530     DWORD PNP_AddID(
00531         [in] handle_t hBinding,
00532         [in, string, unique] LPWSTR pszDeviceID,
00533         [in, string, ref] LPWSTR pszID,
00534         [in] DWORD ulFlags);
00535 
00536     /* Function 35 */
00537     DWORD PNP_RegisterDriver(
00538         [in] handle_t hBinding,
00539         [in, string, ref] LPWSTR pszDeviceID,
00540         [in] DWORD ulFlags);
00541 
00542     /* Function 36 */
00543     DWORD PNP_QueryRemove(
00544         [in] handle_t hBinding,
00545         [in, string, ref] LPWSTR pszDeviceID,
00546         [in, out, unique] PPNP_VETO_TYPE pVetoType,
00547         [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
00548         [in] DWORD ulNameLength,
00549         [in] DWORD ulFlags);
00550 
00551     /* Function 37 */
00552     DWORD PNP_RequestDeviceEject(
00553         [in] handle_t hBinding,
00554         [in, string, ref] LPWSTR pszDeviceID,
00555         [in, out, unique] PPNP_VETO_TYPE pVetoType,
00556         [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
00557         [in] DWORD ulNameLength,
00558         [in] DWORD ulFlags);
00559 
00560     /* Function 38 */
00561     DWORD PNP_IsDockStationPresent(
00562         [in] handle_t hBinding,
00563         [in, out, unique] BOOL *Present);
00564 
00565     /* Function 39 */
00566     DWORD PNP_RequestEjectPC(
00567         [in] handle_t hBinding);
00568 
00569     /* Function 40 */
00570     cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
00571     cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
00572     DWORD PNP_HwProfFlags(
00573         [in] handle_t hBinding,
00574         [in] DWORD ulAction,
00575         [in, string, ref] LPWSTR pDeviceID,
00576         [in] DWORD ulConfig,
00577         [in, out] DWORD *pulValue,
00578         [in, out, unique] PPNP_VETO_TYPE pVetoType,
00579         [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
00580         [in] DWORD ulNameLength,
00581         [in] DWORD ulFlags);
00582 
00583     /* Function 41 */
00584     DWORD PNP_GetHwProfInfo(
00585         [in] handle_t hBinding,
00586         [in] DWORD ulIndex,
00587         [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
00588         [in, range(0, 168)] DWORD ulProfileInfoSize,
00589         /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
00590         [in] DWORD ulFlags);
00591 
00592     /* Function 42 */
00593     DWORD PNP_AddEmptyLogConf(
00594         [in] handle_t hBinding,
00595         [in, string, ref] LPWSTR pDeviceID,
00596         [in] DWORD ulPriority,
00597         [out] DWORD *pulLogConfTag,
00598         [in] DWORD ulFlags);
00599 
00600     /* Function 43 */
00601     DWORD PNP_FreeLogConf(
00602         [in] handle_t hBinding,
00603         [in, string, ref] LPWSTR pDeviceID,
00604         [in] DWORD ulLogConfType,
00605         [in] DWORD ulLogConfTag,
00606         [in] DWORD ulFlags);
00607 
00608     /* Function 44 */
00609     DWORD PNP_GetFirstLogConf(
00610         [in] handle_t hBinding,
00611         [in, string, ref] LPWSTR pDeviceID,
00612         [in] DWORD ulLogConfType,
00613         [out] DWORD *pulLogConfTag,
00614         [in] DWORD ulFlags);
00615 
00616     /* Function 45 */
00617     DWORD PNP_GetNextLogConf(
00618         [in] handle_t hBinding,
00619         [in, string, ref] LPWSTR pDeviceID,
00620         [in] DWORD ulLogConfType,
00621         [in] DWORD ulCurrentTag,
00622         [out] DWORD *pulNextTag,
00623         [in] DWORD ulFlags);
00624 
00625     /* Function 46 */
00626     DWORD PNP_GetLogConfPriority(
00627         [in] handle_t hBinding,
00628         [in, string, ref] LPWSTR pDeviceID,
00629         [in] DWORD ulType,
00630         [in] DWORD ulTag,
00631         [out] DWORD *pPriority,
00632         [in] DWORD ulFlags);
00633 
00634     /* Function 47 */
00635     DWORD PNP_AddResDes(
00636         [in] handle_t hBinding,
00637         [in, string, ref] LPWSTR pDeviceID,
00638         [in] DWORD ulLogConfTag,
00639         [in] DWORD ulLogConfType,
00640         [in] RESOURCEID ResourceID,
00641         [out] DWORD *pulResourceTag,
00642         [in, size_is(ResourceLen)] BYTE *ResourceData,
00643         [in] PNP_RPC_BUFFER_SIZE ResourceLen,
00644         [in] DWORD ulFlags);
00645 
00646     /* Function 48 */
00647     DWORD PNP_FreeResDes(
00648         [in] handle_t hBinding,
00649         [in, string, ref] LPWSTR pDeviceID,
00650         [in] DWORD ulLogConfTag,
00651         [in] DWORD ulLogConfType,
00652         [in] RESOURCEID ResourceID,
00653         [in] DWORD ulResourceTag,
00654         [out] DWORD *pulPreviousResType,
00655         [out] DWORD *pulPreviousResTag,
00656         [in] DWORD ulFlags);
00657 
00658     /* Function 49 */
00659     DWORD PNP_GetNextResDes(
00660         [in] handle_t hBinding,
00661         [in, string, ref] LPWSTR pDeviceID,
00662         [in] DWORD ulLogConfTag,
00663         [in] DWORD ulLogConfType,
00664         [in] RESOURCEID ResourceID,
00665         [in] DWORD ulResourceTag,
00666         [out] DWORD *pulNextResType,
00667         [out] DWORD *pulNextResTag,
00668         [in] DWORD ulFlags);
00669 
00670     /* Function 50 */
00671     DWORD PNP_GetResDesData(
00672         [in] handle_t hBinding,
00673         [in, string, ref] LPWSTR pDeviceID,
00674         [in] DWORD ulLogConfTag,
00675         [in] DWORD ulLogConfType,
00676         [in] RESOURCEID ResourceID,
00677         [in] DWORD ulResourceTag,
00678         [out, size_is(BufferLen)] BYTE *Buffer,
00679         [in] PNP_RPC_BUFFER_SIZE BufferLen,
00680         [in] DWORD ulFlags);
00681 
00682     /* Function 51 */
00683     DWORD PNP_GetResDesDataSize(
00684         [in] handle_t hBinding,
00685         [in, string, ref] LPWSTR pDeviceID,
00686         [in] DWORD ulLogConfTag,
00687         [in] DWORD ulLogConfType,
00688         [in] RESOURCEID ResourceID,
00689         [in] DWORD ulResourceTag,
00690         [out] DWORD *pulSize,
00691         [in] DWORD ulFlags);
00692 
00693     /* Function 52 */
00694     DWORD PNP_ModifyResDes(
00695         [in] handle_t hBinding,
00696         [in, string, ref] LPWSTR pDeviceID,
00697         [in] DWORD ulLogConfTag,
00698         [in] DWORD ulLogConfType,
00699         [in] RESOURCEID CurrentResourceID,
00700         [in] RESOURCEID NewResourceID,
00701         [in] DWORD ulResourceTag,
00702         [in, size_is(ResourceLen)] BYTE *ResourceData,
00703         [in] PNP_RPC_BUFFER_SIZE ResourceLen,
00704         [in] DWORD ulFlags);
00705 
00706     /* Function 53 */
00707     DWORD PNP_DetectResourceConflict(
00708         [in] handle_t hBinding,
00709         [in, string, ref] LPWSTR pDeviceID,
00710         [in] RESOURCEID ResourceID,
00711         [in, size_is(ResourceLen)] BYTE *ResourceData,
00712         [in] PNP_RPC_BUFFER_SIZE ResourceLen,
00713         [out] BOOL *pbConflictDetected,
00714         [in] DWORD ulFlags);
00715 
00716     /* Function 54 */
00717     DWORD PNP_QueryResConfList(
00718         [in] handle_t hBinding,
00719         [in, string, ref] LPWSTR pDeviceID,
00720         [in] RESOURCEID ResourceID,
00721         [in, size_is(ResourceLen)] BYTE *ResourceData,
00722         [in] PNP_RPC_BUFFER_SIZE ResourceLen,
00723         [out, size_is(BufferLen)] BYTE *Buffer,
00724         [in] PNP_RPC_BUFFER_SIZE BufferLen,
00725         [in] DWORD ulFlags);
00726 
00727     /* Function 55 */
00728     DWORD PNP_SetHwProf(
00729         [in] handle_t hBinding,
00730         [in] DWORD ulHardwareProfile,
00731         [in] DWORD ulFlags);
00732 
00733     /* Function 56 */
00734     DWORD PNP_QueryArbitratorFreeData(
00735         [in] handle_t hBinding,
00736         [out,size_is(DataLen)] BYTE *pData,
00737         [in] DWORD DataLen,
00738         [in, string, ref] LPWSTR pDeviceID,
00739         [in] RESOURCEID ResourceID,
00740         [in] DWORD ulFlags);
00741 
00742     /* Function 57 */
00743     DWORD PNP_QueryArbitratorFreeSize(
00744         [in] handle_t hBinding,
00745         [out] DWORD *pulSize,
00746         [in, string, ref] LPWSTR pDeviceID,
00747         [in] RESOURCEID ResourceID,
00748         [in] DWORD ulFlags);
00749 
00750     /* Function 58 */
00751     DWORD PNP_RunDetection(
00752         [in] handle_t hBinding,
00753         [in] DWORD ulFlags);
00754 
00755     /* Function 59 */
00756     DWORD PNP_RegisterNotification(
00757         [in] handle_t hBinding);
00758 
00759     /* Function 60 */
00760     DWORD PNP_UnregisterNotification(
00761         [in] handle_t hBinding);
00762 
00763 cpp_quote("#if _WIN32_WINNT >= 0x0501")
00764 
00765     /* Function 61 */
00766     DWORD PNP_GetCustomDevProp(
00767         [in] handle_t hBinding,
00768         [in, string, ref] LPWSTR pDeviceID,
00769         [in, string, ref] LPWSTR CustomPropName,
00770         [out] DWORD *pulRegDataType,
00771         [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
00772         [out] PNP_RPC_STRING_LEN *pulTransferLen,
00773         [in, out] PNP_RPC_STRING_LEN *pulLength,
00774         [in] DWORD ulFlags);
00775 
00776     /* Function 62 */
00777     DWORD PNP_GetVersionInternal(
00778         [in] handle_t hBinding,
00779         [in, out] WORD *pwVersion);
00780 
00781     /* Function 63 */
00782     DWORD PNP_GetBlockedDriverInfo(
00783         [in] handle_t hBinding,
00784         [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
00785         [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
00786         [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
00787         [in] DWORD ulFlags);
00788 
00789     /* Function 64 */
00790     DWORD PNP_GetServerSideDeviceInstallFlags(
00791         [in] handle_t hBinding,
00792         [out] DWORD *pulSSDIFlags,
00793         [in] DWORD ulFlags);
00794 
00795 cpp_quote("#if _WIN32_WINNT >= 0x0600")
00796 
00797     /* Function 65 */
00798     DWORD PNP_GetObjectPropKeys(
00799         [in] handle_t hBinding,
00800         [in, string, ref] LPWSTR ObjectName,
00801         [in] DWORD ObjectType,
00802         [in, string, unique] LPWSTR PropertyCultureName,
00803         [in, out] PNP_PROP_COUNT *PropertyCount,
00804         [out] PNP_PROP_COUNT *TransferLen,
00805         [out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
00806         [in] DWORD Flags);
00807 
00808     /* Function 66 */
00809     DWORD PNP_GetObjectProp(
00810         [in] handle_t hBinding,
00811         [in, string, ref] LPWSTR ObjectName,
00812         [in] DWORD ObjectType,
00813         [in, string, unique] LPWSTR PropertyCultureName,
00814         [in] const DEVPROPKEY *PropertyKey,
00815         [out] DEVPROPTYPE *PropertyType,
00816         [in, out] PNP_PROP_SIZE *PropertySize,
00817         [out] PNP_PROP_SIZE *TransferLen,
00818         [out, size_is(*PropertySize), length_is(*TransferLen)] BYTE *PropertyBuffer,
00819         [in] DWORD Flags);
00820 
00821     /* Function 67 */
00822     DWORD PNP_SetObjectProp(
00823         [in] handle_t hBinding,
00824         [in, string, ref] LPWSTR ObjectName,
00825         [in] DWORD ObjectType,
00826         [in, string, unique] LPWSTR PropertyCultureName,
00827         [in] const DEVPROPKEY *PropertyKey,
00828         [in] DEVPROPTYPE PropertyType,
00829         [in] PNP_PROP_SIZE PropertySize,
00830         [in, unique, size_is(PropertySize)] BYTE *PropertyBuffer,
00831         [in] DWORD Flags);
00832 
00833     /* Function 68 */
00834     DWORD PNP_InstallDevInst(
00835         [in] handle_t hBinding); /* FIXME */
00836 
00837     /* Function 69 */
00838     DWORD PNP_ApplyPowerSettings(
00839         [in] handle_t hBinding); /* FIXME */
00840 
00841     /* Function 70 */
00842     DWORD PNP_DriverStoreAddDriverPackage(
00843         [in] handle_t hBinding); /* FIXME */
00844 
00845     /* Function 71 */
00846     DWORD PNP_DriverStoreDeleteDriverPackage(
00847         [in] handle_t hBinding); /* FIXME */
00848 
00849     /* Function 72 */
00850     DWORD PNP_RegisterServiceNotification(
00851         [in] handle_t hBinding); /* FIXME */
00852 
00853     /* Function 73 */
00854     DWORD PNP_SetActiveService(
00855         [in] handle_t hBinding); /* FIXME */
00856 
00857     /* Function 74 */
00858     DWORD PNP_DeleteServiceDevices(
00859         [in] handle_t hBinding); /* FIXME */
00860 
00861 cpp_quote("#endif /* WIN32_WINNT >= 0x0600 */")
00862 cpp_quote("#endif /* WIN32_WINNT >= 0x0501 */")
00863 
00864 }

Generated on Sat May 26 2012 04:31:55 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.