Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

716 lines
24 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. pnp.idl
  5. Abstract:
  6. Contains the PnP APIs which are used to remote the plug-and-play
  7. APIs to the local or remote server via RPC. Also contains the RPC
  8. specific data structures for these API.
  9. ** **
  10. ** NEW FUNCTIONS MUST ALWAYS BE ADDED AT THE END OF THE INTERFACE BODY!!! **
  11. ** **
  12. ** INSERTING THEM IN THE MIDDLE BREAKS BACKWARDS COMPATIBILITY, AS FUNCTION **
  13. ** CALLS ARE MISMATCHED WHEN CLIENT AND SERVER TALK DIFFERENT REVISIONS OF **
  14. ** THE INTERFACE. **
  15. ** **
  16. Author:
  17. Paula Tomlinson (paulat) 06-June-1995
  18. Environment:
  19. User-mode - Win32 - MIDL
  20. Revision History:
  21. 06-June-1995 PaulaT
  22. Creation and initial implementation.
  23. Notes:
  24. This version of the pnp interface [version(1.0)] is NOT compatible with any
  25. version of Windows released prior to Windows 2000.
  26. --*/
  27. //
  28. // Interface Attributes
  29. //
  30. [
  31. uuid(8D9F4E40-A03D-11CE-8F69-08003E30051B),
  32. version(1.0),
  33. #ifdef __midl
  34. ms_union,
  35. #endif // __midl
  36. pointer_default(unique)
  37. ]
  38. //
  39. // Interface Keyword
  40. //
  41. interface pnp
  42. //
  43. // Interface Body
  44. //
  45. {
  46. import "imports.idl"; // import all the include files
  47. //
  48. // PnP Generic Handle used to bind from client to server. Used by the
  49. // client RPC binding routines PNP_HANDLE_bind, PNP_HANDLE_bind, and the
  50. // obsolete server stubs PNP_Connect, PNP_Disconnect.
  51. //
  52. typedef [handle,unique] LPWSTR PNP_HANDLE;
  53. //
  54. // PnP Context Handles used to maintain client state on the server between
  55. // RPC calls. Used by server stubs PNP_RegisterNotification,
  56. // PNP_UnregisterNotification.
  57. //
  58. // Note that applying the [context_handle] attribute to a type definition
  59. // implicitly declares a server context rundown routine for that type in the
  60. // server stubs, which must be implemented by the server.
  61. //
  62. typedef [context_handle] void* PNP_NOTIFICATION_CONTEXT;
  63. typedef PNP_NOTIFICATION_CONTEXT *PPNP_NOTIFICATION_CONTEXT;
  64. //
  65. // Interface Function Prototypes
  66. //
  67. // NOTE: The names of the functions are short so that when RPC
  68. // prepends the interface name to the names, they are still unique.
  69. //
  70. //----------------------------------------------------------//
  71. // ** FUNCTIONS BELOW THIS POINT, AS DEFINED BY VERSION //
  72. // 1.0 OF THE PNP RPC INTERFACE, ARE ONLY AVAILABLE ON: //
  73. // WINDOWS 2000 (RTM) OR LATER. //
  74. //----------------------------------------------------------//
  75. // these two routines are place holders --------------
  76. CONFIGRET
  77. PNP_Connect(
  78. [in,string,unique] PNP_HANDLE UNCServerName
  79. );
  80. CONFIGRET
  81. PNP_Disconnect(
  82. [in,string,unique] PNP_HANDLE UNCServerName
  83. );
  84. // these two routines are place holders --------------
  85. CONFIGRET
  86. PNP_GetVersion(
  87. [in] handle_t hBinding,
  88. [out] WORD *pVersion
  89. );
  90. CONFIGRET
  91. PNP_GetGlobalState(
  92. [in] handle_t hBinding,
  93. [out] PULONG pulState,
  94. [in] ULONG ulFlags
  95. );
  96. CONFIGRET
  97. PNP_InitDetection(
  98. [in] handle_t hBinding
  99. );
  100. CONFIGRET
  101. PNP_ReportLogOn(
  102. [in] handle_t hBinding,
  103. [in] BOOL bAdmin,
  104. [in] DWORD ProcessID
  105. );
  106. CONFIGRET
  107. PNP_ValidateDeviceInstance(
  108. [in] handle_t hBinding,
  109. [in,string,ref] LPWSTR pDeviceID,
  110. [in] ULONG ulFlags
  111. );
  112. CONFIGRET
  113. PNP_GetRootDeviceInstance(
  114. [in] handle_t hBinding,
  115. [out,string,size_is(ulLength)] LPWSTR pDeviceID,
  116. [in] ULONG ulLength
  117. );
  118. CONFIGRET
  119. PNP_GetRelatedDeviceInstance(
  120. [in] handle_t hBinding,
  121. [in] ULONG ulRelationship,
  122. [in,string,ref] LPWSTR pDeviceID,
  123. [out,string,size_is(*pulLength)] LPWSTR pRelatedDeviceID,
  124. [in,out] PULONG pulLength,
  125. [in] ULONG ulFlags
  126. );
  127. CONFIGRET
  128. PNP_EnumerateSubKeys(
  129. [in] handle_t hBinding,
  130. [in] ULONG ulBranch,
  131. [in] ULONG ulIndex,
  132. [out,string,size_is(ulLength)] PWSTR Buffer,
  133. [in] ULONG ulLength,
  134. [out] PULONG pulRequiredLen,
  135. [in] ULONG ulFlags
  136. );
  137. CONFIGRET
  138. PNP_GetDeviceList(
  139. [in] handle_t hBinding,
  140. [in,string,unique] LPCWSTR pszFilter,
  141. [out,size_is(*pulLength),length_is(*pulLength)] LPWSTR Buffer,
  142. [in,out] PULONG pulLength,
  143. [in] ULONG ulFlags
  144. );
  145. CONFIGRET
  146. PNP_GetDeviceListSize(
  147. [in] handle_t hBinding,
  148. [in,string,unique] LPCWSTR pszFilter,
  149. [out] PULONG pulLen,
  150. [in] ULONG ulFlags
  151. );
  152. CONFIGRET
  153. PNP_GetDepth(
  154. [in] handle_t hBinding,
  155. [in,string,ref] LPCWSTR pszDeviceID,
  156. [out] PULONG pulDepth,
  157. [in] ULONG ulFlags
  158. );
  159. CONFIGRET
  160. PNP_GetDeviceRegProp(
  161. [in] handle_t hBinding,
  162. [in,string,ref] LPCWSTR pDeviceID,
  163. [in] ULONG ulProperty,
  164. [in,out] PULONG pulRegDataType,
  165. [out,size_is(*pulTransferLen),length_is(*pulTransferLen)] LPBYTE Buffer,
  166. [in,out] PULONG pulTransferLen,
  167. [in,out] PULONG pulLength,
  168. [in] ULONG ulFlags
  169. );
  170. CONFIGRET
  171. PNP_SetDeviceRegProp(
  172. [in] handle_t hBinding,
  173. [in,string,ref] LPCWSTR pDeviceID,
  174. [in] ULONG ulProperty,
  175. [in] ULONG ulDataType,
  176. [in,size_is(ulLength)] LPBYTE Buffer,
  177. [in] ULONG ulLength,
  178. [in] ULONG ulFlags
  179. );
  180. CONFIGRET
  181. PNP_GetClassInstance(
  182. [in] handle_t hBinding,
  183. [in,string,ref] LPCWSTR pDeviceID,
  184. [out,string,size_is(ulLength)] LPWSTR pszClassInstance,
  185. [in] ULONG ulLength
  186. );
  187. CONFIGRET
  188. PNP_CreateKey(
  189. [in] handle_t hBinding,
  190. [in,string,ref] LPCWSTR pszSubKey,
  191. [in] REGSAM samDesired,
  192. [in] ULONG ulFlags
  193. );
  194. CONFIGRET
  195. PNP_DeleteRegistryKey(
  196. [in] handle_t hBinding,
  197. [in,string,ref] LPCWSTR pszDeviceID,
  198. [in,string,ref] LPCWSTR pszParentKey,
  199. [in,string,ref] LPCWSTR pszChildKey,
  200. [in] ULONG ulFlags
  201. );
  202. CONFIGRET
  203. PNP_GetClassCount(
  204. [in] handle_t hBinding,
  205. [out] PULONG pulClassCount,
  206. [in] ULONG ulFlags
  207. );
  208. CONFIGRET
  209. PNP_GetClassName(
  210. [in] handle_t hBinding,
  211. [in,string,ref] PCWSTR pszClassGuid,
  212. [out,string,size_is(*pulLength)] PWSTR Buffer,
  213. [in,out] PULONG pulLength,
  214. [in] ULONG ulFlags
  215. );
  216. CONFIGRET
  217. PNP_DeleteClassKey(
  218. [in] handle_t hBinding,
  219. [in,string,ref] PCWSTR pszClassGuid,
  220. [in] ULONG ulFlags
  221. );
  222. CONFIGRET
  223. PNP_GetInterfaceDeviceAlias(
  224. [in] handle_t hBinding,
  225. [in,string,ref] PCWSTR pszInterfaceDevice,
  226. [in] LPGUID AliasInterfaceGuid,
  227. [out,string,size_is(*pulTransferLen)] PWSTR pszAliasInterfaceDevice,
  228. [in,out] PULONG pulLength,
  229. [in,out] PULONG pulTransferLen,
  230. [in] ULONG ulFlags
  231. );
  232. CONFIGRET
  233. PNP_GetInterfaceDeviceList(
  234. [in] handle_t hBinding,
  235. [in] LPGUID InterfaceGuid,
  236. [in,string,unique] LPCWSTR pszDeviceID,
  237. [out,size_is(*pulLength),length_is(*pulLength)] LPWSTR Buffer,
  238. [in,out] PULONG pulLength,
  239. [in] ULONG ulFlags
  240. );
  241. CONFIGRET
  242. PNP_GetInterfaceDeviceListSize(
  243. [in] handle_t hBinding,
  244. [out] PULONG pulLen,
  245. [in] LPGUID InterfaceGuid,
  246. [in,string,unique] LPCWSTR pszDeviceID,
  247. [in] ULONG ulFlags
  248. );
  249. CONFIGRET
  250. PNP_RegisterDeviceClassAssociation(
  251. [in] handle_t hBinding,
  252. [in,string,unique] LPCWSTR pszDeviceID,
  253. [in] LPGUID InterfaceGuid,
  254. [in,string,unique] LPCWSTR pszReference,
  255. [out,string,size_is(*pulTransferLen)] PWSTR pszSymLink,
  256. [in,out] PULONG pulLength,
  257. [in,out] PULONG pulTransferLen,
  258. [in] ULONG ulFlags
  259. );
  260. CONFIGRET
  261. PNP_UnregisterDeviceClassAssociation(
  262. [in] handle_t hBinding,
  263. [in,string,unique] LPCWSTR pszInterfaceDevice,
  264. [in] ULONG ulFlags
  265. );
  266. CONFIGRET
  267. PNP_GetClassRegProp(
  268. [in] handle_t hBinding,
  269. [in,string,ref] LPCWSTR pszClassGuid,
  270. [in] ULONG ulProperty,
  271. [in,out] PULONG pulRegDataType,
  272. [out,size_is(*pulTransferLen),length_is(*pulTransferLen)] LPBYTE Buffer,
  273. [in,out] PULONG pulTransferLen,
  274. [in,out] PULONG pulLength,
  275. [in] ULONG ulFlags
  276. );
  277. CONFIGRET
  278. PNP_SetClassRegProp(
  279. [in] handle_t hBinding,
  280. [in,string,ref] LPCWSTR pszClassGuid,
  281. [in] ULONG ulProperty,
  282. [in] ULONG ulDataType,
  283. [in,size_is(ulLength)] LPBYTE Buffer,
  284. [in] ULONG ulLength,
  285. [in] ULONG ulFlags
  286. );
  287. CONFIGRET
  288. PNP_CreateDevInst(
  289. [in] handle_t hBinding,
  290. [in,out,string,size_is(ulLength)] LPWSTR pszDeviceID,
  291. [in,string,ref] LPWSTR pszParentDeviceID,
  292. [in] ULONG ulLength,
  293. [in] ULONG ulFlags
  294. );
  295. CONFIGRET
  296. PNP_DeviceInstanceAction(
  297. [in] handle_t hBinding,
  298. [in] ULONG ulMajorAction,
  299. [in] ULONG ulMinorAction,
  300. [in,string,unique] PCWSTR pszDeviceInstance1,
  301. [in,string,unique] PCWSTR pszDeviceInstance2
  302. );
  303. CONFIGRET
  304. PNP_GetDeviceStatus(
  305. [in] handle_t hBinding,
  306. [in,string,unique] LPCWSTR pDeviceID,
  307. [out] PULONG pulStatus,
  308. [out] PULONG pulProblem,
  309. [in] ULONG ulFlags
  310. );
  311. CONFIGRET
  312. PNP_SetDeviceProblem(
  313. [in] handle_t hBinding,
  314. [in,string,unique] LPCWSTR pDeviceID,
  315. [in] ULONG ulProblem,
  316. [in] ULONG ulFlags
  317. );
  318. CONFIGRET
  319. PNP_DisableDevInst(
  320. [in] handle_t hBinding,
  321. [in,string,unique] LPCWSTR pDeviceID,
  322. [in,out,unique] PPNP_VETO_TYPE pVetoType,
  323. [in,out,string,max_is(ulNameLength),unique] LPWSTR pszVetoName,
  324. [in] ULONG ulNameLength,
  325. [in] ULONG ulFlags
  326. );
  327. CONFIGRET
  328. PNP_UninstallDevInst(
  329. [in] handle_t hBinding,
  330. [in,string,unique] LPCWSTR pDeviceID,
  331. [in] ULONG ulFlags
  332. );
  333. CONFIGRET
  334. PNP_AddID(
  335. [in] handle_t hBinding,
  336. [in,string,unique] LPCWSTR pszDeviceID,
  337. [in,string,ref] LPCWSTR pszID,
  338. [in] ULONG ulFlags
  339. );
  340. CONFIGRET
  341. PNP_RegisterDriver(
  342. [in] handle_t hBinding,
  343. [in,string,ref] LPCWSTR pszDeviceID,
  344. [in] ULONG ulFlags
  345. );
  346. CONFIGRET
  347. PNP_QueryRemove(
  348. [in] handle_t hBinding,
  349. [in,string,ref] LPCWSTR pszDeviceID,
  350. [in,out,unique] PPNP_VETO_TYPE pVetoType,
  351. [in,out,string,max_is(ulNameLength),unique] LPWSTR pszVetoName,
  352. [in] ULONG ulNameLength,
  353. [in] ULONG ulFlags
  354. );
  355. CONFIGRET
  356. PNP_RequestDeviceEject(
  357. [in] handle_t hBinding,
  358. [in,string,ref] LPCWSTR pszDeviceID,
  359. [in,out,unique] PPNP_VETO_TYPE pVetoType,
  360. [in,out,string,max_is(ulNameLength),unique] LPWSTR pszVetoName,
  361. [in] ULONG ulNameLength,
  362. [in] ULONG ulFlags
  363. );
  364. CONFIGRET
  365. PNP_IsDockStationPresent (
  366. [in] handle_t hBinding,
  367. [in,out,unique] PBOOL Present
  368. );
  369. CONFIGRET
  370. PNP_RequestEjectPC (
  371. [in] handle_t hBinding
  372. );
  373. CONFIGRET
  374. PNP_HwProfFlags(
  375. [in] handle_t hBinding,
  376. [in] ULONG ulAction,
  377. [in,string,ref] LPCWSTR pDeviceID,
  378. [in] ULONG ulConfig,
  379. [in,out] PULONG pulValue,
  380. [in,out,unique] PPNP_VETO_TYPE pVetoType,
  381. [in,out,string,max_is(ulNameLength),unique] LPWSTR pszVetoName,
  382. [in] ULONG ulNameLength,
  383. [in] ULONG ulFlags
  384. );
  385. CONFIGRET
  386. PNP_GetHwProfInfo(
  387. [in] handle_t hBinding,
  388. [in] ULONG ulIndex,
  389. [in,out,ref] HWPROFILEINFO *pHWProfileInfo,
  390. [in] ULONG ulProfileInfoSize,
  391. [in] ULONG ulFlags
  392. );
  393. CONFIGRET
  394. PNP_AddEmptyLogConf(
  395. [in] handle_t hBinding,
  396. [in,string,ref] LPWSTR pDeviceID,
  397. [in] ULONG ulPriority,
  398. [out] PULONG pulLogConfTag,
  399. [in] ULONG ulFlags
  400. );
  401. CONFIGRET
  402. PNP_FreeLogConf(
  403. [in] handle_t hBinding,
  404. [in,string,ref] LPWSTR pDeviceID,
  405. [in] ULONG ulLogConfType,
  406. [in] ULONG ulLogConfTag,
  407. [in] ULONG ulFlags
  408. );
  409. CONFIGRET
  410. PNP_GetFirstLogConf(
  411. [in] handle_t hBinding,
  412. [in,string,ref] LPWSTR pDeviceID,
  413. [in] ULONG ulLogConfType,
  414. [out] PULONG pulLogConfTag,
  415. [in] ULONG ulFlags
  416. );
  417. CONFIGRET
  418. PNP_GetNextLogConf(
  419. [in] handle_t hBinding,
  420. [in,string,ref] LPWSTR pDeviceID,
  421. [in] ULONG ulLogConfType,
  422. [in] ULONG ulCurrentTag,
  423. [out] PULONG pulNextTag,
  424. [in] ULONG ulFlags
  425. );
  426. CONFIGRET
  427. PNP_GetLogConfPriority(
  428. [in] handle_t hBinding,
  429. [in,string,ref] LPWSTR pDeviceID,
  430. [in] ULONG ulType,
  431. [in] ULONG ulTag,
  432. [out] PULONG pPriority,
  433. [in] ULONG ulFlags
  434. );
  435. CONFIGRET
  436. PNP_AddResDes(
  437. [in] handle_t hBinding,
  438. [in,string,ref] LPWSTR pDeviceID,
  439. [in] ULONG ulLogConfTag,
  440. [in] ULONG ulLogConfType,
  441. [in] RESOURCEID ResourceID,
  442. [out] PULONG pulResourceTag,
  443. [in,size_is(ResourceLen)] LPBYTE ResourceData,
  444. [in] ULONG ResourceLen,
  445. [in] ULONG ulFlags
  446. );
  447. CONFIGRET
  448. PNP_FreeResDes(
  449. [in] handle_t hBinding,
  450. [in,string,ref] LPWSTR pDeviceID,
  451. [in] ULONG ulLogConfTag,
  452. [in] ULONG ulLogConfType,
  453. [in] RESOURCEID ResourceID,
  454. [in] ULONG ulResourceTag,
  455. [out] PULONG pulPreviousResType,
  456. [out] PULONG pulPreviousResTag,
  457. [in] ULONG ulFlags
  458. );
  459. CONFIGRET
  460. PNP_GetNextResDes(
  461. [in] handle_t hBinding,
  462. [in,string,ref] LPWSTR pDeviceID,
  463. [in] ULONG ulLogConfTag,
  464. [in] ULONG ulLogConfType,
  465. [in] RESOURCEID ResourceID,
  466. [in] ULONG ulResourceTag,
  467. [out] PULONG pulNextResDesTag,
  468. [out] PULONG pulNextResDesType,
  469. [in] ULONG ulFlags
  470. );
  471. CONFIGRET
  472. PNP_GetResDesData(
  473. [in] handle_t hBinding,
  474. [in,string,ref] LPWSTR pDeviceID,
  475. [in] ULONG ulLogConfTag,
  476. [in] ULONG ulLogConfType,
  477. [in] RESOURCEID ResourceID,
  478. [in] ULONG ulResourceTag,
  479. [out,size_is(BufferLen)] LPBYTE Buffer,
  480. [in] ULONG BufferLen,
  481. [in] ULONG ulFlags
  482. );
  483. CONFIGRET
  484. PNP_GetResDesDataSize(
  485. [in] handle_t hBinding,
  486. [in,string,ref] LPWSTR pDeviceID,
  487. [in] ULONG ulLogConfTag,
  488. [in] ULONG ulLogConfType,
  489. [in] RESOURCEID ResourceID,
  490. [in] ULONG ulResourceTag,
  491. [out] PULONG pulSize,
  492. [in] ULONG ulFlags
  493. );
  494. CONFIGRET
  495. PNP_ModifyResDes(
  496. [in] handle_t hBinding,
  497. [in,string,ref] LPWSTR pDeviceID,
  498. [in] ULONG ulLogConfTag,
  499. [in] ULONG ulLogConfType,
  500. [in] RESOURCEID CurrentResourceID,
  501. [in] RESOURCEID NewResourceID,
  502. [in] ULONG ulResourceTag,
  503. [in,size_is(ResourceLen)] LPBYTE ResourceData,
  504. [in] ULONG ResourceLen,
  505. [in] ULONG ulFlags
  506. );
  507. CONFIGRET
  508. PNP_DetectResourceConflict(
  509. [in] handle_t hBinding,
  510. [in,string,ref] LPWSTR pDeviceID,
  511. [in] RESOURCEID ResourceID,
  512. [in,size_is(ResourceLen)] LPBYTE ResourceData,
  513. [in] ULONG ResourceLen,
  514. [out] PBOOL pbConflictDetected,
  515. [in] ULONG ulFlags
  516. );
  517. CONFIGRET
  518. PNP_QueryResConfList(
  519. [in] handle_t hBinding,
  520. [in,string,ref] LPWSTR pDeviceID,
  521. [in] RESOURCEID ResourceID,
  522. [in,size_is(ResourceLen)] LPBYTE ResourceData,
  523. [in] ULONG ResourceLen,
  524. [out,size_is(BufferLen)] LPBYTE Buffer,
  525. [in] ULONG BufferLen,
  526. [in] ULONG ulFlags
  527. );
  528. CONFIGRET
  529. PNP_SetHwProf(
  530. [in] handle_t hBinding,
  531. [in] ULONG ulHardwareProfile,
  532. [in] ULONG ulFlags
  533. );
  534. CONFIGRET
  535. PNP_QueryArbitratorFreeData(
  536. [in] handle_t hBinding,
  537. [out,size_is(ulDataLen)] LPBYTE pData,
  538. [in] ULONG ulDataLen,
  539. [in,string,ref] LPCWSTR pszDeviceID,
  540. [in] RESOURCEID ResourceID,
  541. [in] ULONG ulFlags
  542. );
  543. CONFIGRET
  544. PNP_QueryArbitratorFreeSize(
  545. [in] handle_t hBinding,
  546. [out] PULONG pulSize,
  547. [in,string,ref] LPCWSTR pszDeviceID,
  548. [in] RESOURCEID ResourceID,
  549. [in] ULONG ulFlags
  550. );
  551. CONFIGRET
  552. PNP_RunDetection(
  553. [in] handle_t hBinding,
  554. [in] ULONG ulFlags
  555. );
  556. CONFIGRET
  557. PNP_RegisterNotification(
  558. [in] handle_t hBinding,
  559. [in] ULONG_PTR hRecipient,
  560. [in,string,ref] LPWSTR ServiceName,
  561. [in,size_is(ulSize)] LPBYTE NotificationFilter,
  562. [in] ULONG ulSize,
  563. [in] DWORD Flags,
  564. [out] PNP_NOTIFICATION_CONTEXT *Context,
  565. [in] ULONG hProcess,
  566. [in] ULONG64 *ClientContext
  567. );
  568. CONFIGRET
  569. PNP_UnregisterNotification(
  570. [in] handle_t hBinding,
  571. [in,out] PNP_NOTIFICATION_CONTEXT *Context
  572. );
  573. //----------------------------------------------------------//
  574. // ** FUNCTIONS BELOW THIS POINT ARE ONLY AVAILABLE ON: //
  575. // WINDOWS XP (RTM) OR LATER. //
  576. //----------------------------------------------------------//
  577. CONFIGRET
  578. PNP_GetCustomDevProp(
  579. [in] handle_t hBinding,
  580. [in,string,ref] LPCWSTR pDeviceID,
  581. [in,string,ref] LPCWSTR CustomPropName,
  582. [out] PULONG pulRegDataType,
  583. [out,size_is(*pulLength),length_is(*pulTransferLen)] LPBYTE Buffer,
  584. [out] PULONG pulTransferLen,
  585. [in,out] PULONG pulLength,
  586. [in] ULONG ulFlags
  587. );
  588. CONFIGRET
  589. PNP_GetVersionInternal(
  590. [in] handle_t hBinding,
  591. [in,out] WORD *pwVersion
  592. );
  593. CONFIGRET
  594. PNP_GetBlockedDriverInfo(
  595. [in] handle_t hBinding,
  596. [out,size_is(*pulLength),length_is(*pulTransferLen)] LPBYTE Buffer,
  597. [out] PULONG pulTransferLen,
  598. [in,out] PULONG pulLength,
  599. [in] ULONG ulFlags
  600. );
  601. CONFIGRET
  602. PNP_GetServerSideDeviceInstallFlags(
  603. [in] handle_t hBinding,
  604. [out] PULONG pulSSDIFlags,
  605. [in] ULONG ulFlags
  606. );
  607. //----------------------------------------------------------//
  608. // ** FUNCTIONS BELOW THIS POINT ARE ONLY AVAILABLE ON: //
  609. // WINDOWS XP (SP1) / WINDOWS .NET OR LATER. //
  610. //----------------------------------------------------------//
  611. //----------------------------------------------------------//
  612. // ** ADD NEW INTERFACES HERE //
  613. //----------------------------------------------------------//
  614. }