hidsdi.h
上传用户:chinacm168
上传日期:2007-04-11
资源大小:193k
文件大小:14k
源码类别:

USB编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4.     HIDSDI.H
  5. Abstract:
  6.     This module contains the PUBLIC definitions for the
  7.     code that implements the HID dll.
  8. Environment:
  9.     Kernel & user mode
  10. --*/
  11. #ifndef _HIDSDI_H
  12. #define _HIDSDI_H
  13. #include <pshpack4.h>
  14. //#include "wtypes.h"
  15. //#include <windef.h>
  16. //#include <win32.h>
  17. //#include <basetyps.h>
  18. typedef LONG NTSTATUS;
  19. #include "hidusage.h"
  20. #include "hidpi.h"
  21. typedef struct _HIDD_CONFIGURATION {
  22.     PVOID    cookie;
  23.     ULONG    size;
  24.     ULONG    RingBufferSize;
  25. } HIDD_CONFIGURATION, *PHIDD_CONFIGURATION;
  26. typedef struct _HIDD_ATTRIBUTES {
  27.     ULONG   Size; // = sizeof (struct _HIDD_ATTRIBUTES)
  28.     //
  29.     // Vendor ids of this hid device
  30.     //
  31.     USHORT  VendorID;
  32.     USHORT  ProductID;
  33.     USHORT  VersionNumber;
  34.     //
  35.     // Additional fields will be added to the end of this structure.
  36.     //
  37. } HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES;
  38. BOOLEAN __stdcall
  39. HidD_GetAttributes (
  40.     IN  HANDLE              HidDeviceObject,
  41.     OUT PHIDD_ATTRIBUTES    Attributes
  42.     );
  43. /*++
  44. Routine Description:
  45.     Fill in the given HIDD_ATTRIBUTES structure with the attributes of the
  46.     given hid device.
  47. --*/
  48. void __stdcall
  49. HidD_GetHidGuid (
  50.    OUT   LPGUID   HidGuid
  51.    );
  52. BOOLEAN __stdcall
  53. HidD_GetPreparsedData (
  54.    IN    HANDLE                  HidDeviceObject,
  55.    OUT   PHIDP_PREPARSED_DATA  * PreparsedData
  56.    );
  57. /*++
  58. Routine Description:
  59.     Given a handle to a valid Hid Class Device Object, retrieve the preparsed
  60.     data for the device.  This routine will allocate the appropriately 
  61.     sized buffer to hold this preparsed data.  It is up to client to call
  62.     HidP_FreePreparsedData to free the memory allocated to this structure when
  63.     it is no longer needed.
  64. Arguments:
  65.    HidDeviceObject A handle to a Hid Device that the client obtains using 
  66.                    a call to CreateFile on a valid Hid device string name.
  67.                    The string name can be obtained using standard PnP calls.
  68.    PreparsedData   An opaque data structure used by other functions in this 
  69.                    library to retrieve information about a given device.
  70. Return Value:
  71.    TRUE if successful.
  72.    FALSE otherwise  -- Use GetLastError() to get extended error information
  73. --*/
  74. BOOLEAN __stdcall
  75. HidD_FreePreparsedData (
  76.    IN    PHIDP_PREPARSED_DATA PreparsedData
  77.    );
  78. BOOLEAN __stdcall
  79. HidD_FlushQueue (
  80.    IN    HANDLE                HidDeviceObject
  81.    );
  82. /*++
  83. Routine Description:
  84.     Flush the input queue for the given HID device.
  85. Arguments:
  86.    HidDeviceObject A handle to a Hid Device that the client obtains using 
  87.                    a call to CreateFile on a valid Hid device string name.
  88.                    The string name can be obtained using standard PnP calls.
  89. Return Value:
  90.    TRUE if successful
  91.    FALSE otherwise  -- Use GetLastError() to get extended error information
  92. --*/
  93. BOOLEAN __stdcall
  94. HidD_GetConfiguration (
  95.    IN   HANDLE               HidDeviceObject,
  96.    OUT  PHIDD_CONFIGURATION  Configuration,
  97.    IN   ULONG                ConfigurationLength
  98.    );
  99. /*++
  100. Routine Description:
  101.     Get the configuration information for this Hid device
  102. Arguments:
  103.    HidDeviceObject      A handle to a Hid Device Object.
  104.    Configuration        A configuration structure.  HidD_GetConfiguration MUST
  105.                         be called before the configuration can be modified and
  106.                         set using HidD_SetConfiguration
  107.    ConfigurationLength  That is ``sizeof (HIDD_CONFIGURATION)''. Using this
  108.                         parameter, we can later increase the length of the 
  109.                         configuration array and not break older apps.
  110. Return Value:
  111.    TRUE if successful
  112.    FALSE otherwise  -- Use GetLastError() to get extended error information
  113. --*/
  114. BOOLEAN __stdcall
  115. HidD_SetConfiguration (
  116.    IN   HANDLE               HidDeviceObject,
  117.    IN   PHIDD_CONFIGURATION  Configuration,
  118.    IN   ULONG                ConfigurationLength
  119.    );
  120. /*++
  121. Routine Description:
  122.    Set the configuration information for this Hid device...
  123.    
  124.    NOTE: HidD_GetConfiguration must be called to retrieve the current 
  125.          configuration information before this information can be modified 
  126.          and set.
  127. Arguments:
  128.     HidDeviceObject      A handle to a Hid Device Object.
  129.  
  130.     Configuration        A configuration structure.  HidD_GetConfiguration MUST
  131.                          be called before the configuration can be modified and
  132.                          set using HidD_SetConfiguration
  133.  
  134.     ConfigurationLength  That is ``sizeof (HIDD_CONFIGURATION)''. Using this
  135.                          parameter, we can later increase the length of the 
  136.                          configuration array and not break older apps.
  137. Return Value:
  138.     TRUE if successful
  139.     FALSE otherwise  -- Use GetLastError() to get extended error information
  140. --*/
  141. BOOLEAN __stdcall
  142. HidD_GetFeature (
  143.    IN    HANDLE   HidDeviceObject,
  144.    OUT   PVOID    ReportBuffer,
  145.    IN    ULONG    ReportBufferLength
  146.    );
  147. /*++
  148. Routine Description:
  149.     Retrieve a feature report from a HID device.
  150. Arguments:
  151.     HidDeviceObject      A handle to a Hid Device Object.
  152.  
  153.     ReportBuffer         The buffer that the feature report should be placed 
  154.                          into.  The first byte of the buffer should be set to
  155.                          the report ID of the desired report
  156.  
  157.     ReportBufferLength   The size (in bytes) of ReportBuffer.  This value 
  158.                          should be greater than or equal to the 
  159.                          FeatureReportByteLength field as specified in the 
  160.                          HIDP_CAPS structure for the device
  161. Return Value:
  162.     TRUE if successful
  163.     FALSE otherwise  -- Use GetLastError() to get extended error information
  164. --*/
  165. BOOLEAN __stdcall
  166. HidD_SetFeature (
  167.    IN    HANDLE   HidDeviceObject,
  168.    IN    PVOID    ReportBuffer,
  169.    IN    ULONG    ReportBufferLength
  170.    );
  171. /*++
  172. Routine Description:
  173.     Send a feature report to a HID device.
  174. Arguments:
  175.     HidDeviceObject      A handle to a Hid Device Object.
  176.  
  177.     ReportBuffer         The buffer of the feature report to send to the device
  178.  
  179.     ReportBufferLength   The size (in bytes) of ReportBuffer.  This value 
  180.                          should be greater than or equal to the 
  181.                          FeatureReportByteLength field as specified in the 
  182.                          HIDP_CAPS structure for the device
  183. Return Value:
  184.     TRUE if successful
  185.     FALSE otherwise  -- Use GetLastError() to get extended error information
  186. --*/
  187. BOOLEAN __stdcall
  188. HidD_GetInputReport (
  189.    IN    HANDLE   HidDeviceObject,
  190.    OUT   PVOID    ReportBuffer,
  191.    IN    ULONG    ReportBufferLength
  192.    );
  193. /*++
  194. Routine Description:
  195.     Retrieve an input report from a HID device.
  196. Arguments:
  197.     HidDeviceObject      A handle to a Hid Device Object.
  198.  
  199.     ReportBuffer         The buffer that the input report should be placed 
  200.                          into.  The first byte of the buffer should be set to
  201.                          the report ID of the desired report
  202.  
  203.     ReportBufferLength   The size (in bytes) of ReportBuffer.  This value 
  204.                          should be greater than or equal to the 
  205.                          InputReportByteLength field as specified in the 
  206.                          HIDP_CAPS structure for the device
  207. Return Value:
  208.     TRUE if successful
  209.     FALSE otherwise  -- Use GetLastError() to get extended error information
  210. --*/
  211. BOOLEAN __stdcall
  212. HidD_SetOutputReport (
  213.    IN    HANDLE   HidDeviceObject,
  214.    IN    PVOID    ReportBuffer,
  215.    IN    ULONG    ReportBufferLength
  216.    );
  217. /*++
  218. Routine Description:
  219.     Send an output report to a HID device.
  220. Arguments:
  221.     HidDeviceObject      A handle to a Hid Device Object.
  222.  
  223.     ReportBuffer         The buffer of the output report to send to the device
  224.  
  225.     ReportBufferLength   The size (in bytes) of ReportBuffer.  This value 
  226.                          should be greater than or equal to the 
  227.                          OutputReportByteLength field as specified in the 
  228.                          HIDP_CAPS structure for the device
  229. Return Value:
  230.     TRUE if successful
  231.     FALSE otherwise  -- Use GetLastError() to get extended error information
  232. --*/
  233. BOOLEAN __stdcall
  234. HidD_GetNumInputBuffers (
  235.     IN  HANDLE  HidDeviceObject,
  236.     OUT PULONG  NumberBuffers
  237.     );
  238. /*++
  239. Routine Description:
  240.     This function returns the number of input buffers used by the specified
  241.     file handle to the Hid device.  Each file object has a number of buffers
  242.     associated with it to queue reports read from the device but which have
  243.     not yet been read by the user-mode app with a handle to that device.
  244. Arguments:
  245.     HidDeviceObject      A handle to a Hid Device Object.
  246.  
  247.     NumberBuffers        Number of buffers currently being used for this file
  248.                          handle to the Hid device
  249. Return Value:
  250.     TRUE if successful
  251.     FALSE otherwise  -- Use GetLastError() to get extended error information
  252. --*/
  253. BOOLEAN __stdcall
  254. HidD_SetNumInputBuffers (
  255.     IN  HANDLE HidDeviceObject,
  256.     OUT ULONG  NumberBuffers
  257.     );
  258. /*++
  259. Routine Description:
  260.     This function sets the number of input buffers used by the specified
  261.     file handle to the Hid device.  Each file object has a number of buffers
  262.     associated with it to queue reports read from the device but which have
  263.     not yet been read by the user-mode app with a handle to that device.
  264. Arguments:
  265.     HidDeviceObject      A handle to a Hid Device Object.
  266.  
  267.     NumberBuffers        New number of buffers to use for this file handle to
  268.                          the Hid device
  269. Return Value:
  270.     TRUE if successful
  271.     FALSE otherwise  -- Use GetLastError() to get extended error information
  272. --*/
  273. BOOLEAN __stdcall
  274. HidD_GetPhysicalDescriptor (
  275.    IN    HANDLE   HidDeviceObject,
  276.    OUT   PVOID    Buffer,
  277.    IN    ULONG    BufferLength
  278.    );
  279. /*++
  280. Routine Description:
  281.     This function retrieves the raw physical descriptor for the specified
  282.     Hid device.  
  283. Arguments:
  284.     HidDeviceObject      A handle to a Hid Device Object.
  285.  
  286.     Buffer               Buffer which on return will contain the physical
  287.                          descriptor if one exists for the specified device
  288.                          handle
  289.     BufferLength         Length of buffer (in bytes)
  290. Return Value:
  291.     TRUE if successful
  292.     FALSE otherwise  -- Use GetLastError() to get extended error information
  293. --*/
  294. BOOLEAN __stdcall
  295. HidD_GetManufacturerString (
  296.    IN    HANDLE   HidDeviceObject,
  297.    OUT   PVOID    Buffer,
  298.    IN    ULONG    BufferLength
  299.    );
  300. /*++
  301. Routine Description:
  302.     This function retrieves the manufacturer string from the specified 
  303.     Hid device.  
  304. Arguments:
  305.     HidDeviceObject      A handle to a Hid Device Object.
  306.  
  307.     Buffer               Buffer which on return will contain the manufacturer
  308.                          string returned from the device.  This string is a 
  309.                          wide-character string
  310.     BufferLength         Length of Buffer (in bytes)
  311. Return Value:
  312.     TRUE if successful
  313.     FALSE otherwise  -- Use GetLastError() to get extended error information
  314. --*/
  315. BOOLEAN __stdcall
  316. HidD_GetProductString (
  317.    IN    HANDLE   HidDeviceObject,
  318.    OUT   PVOID    Buffer,
  319.    IN    ULONG    BufferLength
  320.    );
  321. /*++
  322. Routine Description:
  323.     This function retrieves the product string from the specified 
  324.     Hid device.  
  325. Arguments:
  326.     HidDeviceObject      A handle to a Hid Device Object.
  327.  
  328.     Buffer               Buffer which on return will contain the product
  329.                          string returned from the device.  This string is a 
  330.                          wide-character string
  331.     BufferLength         Length of Buffer (in bytes)
  332. Return Value:
  333.     TRUE if successful
  334.     FALSE otherwise  -- Use GetLastError() to get extended error information
  335. --*/
  336. BOOLEAN __stdcall
  337. HidD_GetIndexedString (
  338.    IN    HANDLE   HidDeviceObject,
  339.    IN    ULONG    StringIndex,
  340.    OUT   PVOID    Buffer,
  341.    IN    ULONG    BufferLength
  342.    );
  343. /*++
  344. Routine Description:
  345.     This function retrieves a string from the specified Hid device that is
  346.     specified with a certain string index.
  347. Arguments:
  348.     HidDeviceObject      A handle to a Hid Device Object.
  349.  
  350.     StringIndex          Index of the string to retrieve
  351.     Buffer               Buffer which on return will contain the product
  352.                          string returned from the device.  This string is a 
  353.                          wide-character string
  354.     BufferLength         Length of Buffer (in bytes)
  355. Return Value:
  356.     TRUE if successful
  357.     FALSE otherwise  -- Use GetLastError() to get extended error information
  358. --*/
  359. BOOLEAN __stdcall
  360. HidD_GetSerialNumberString (
  361.    IN    HANDLE   HidDeviceObject,
  362.    OUT   PVOID    Buffer,
  363.    IN    ULONG    BufferLength
  364.    );
  365. /*++
  366. Routine Description:
  367.     This function retrieves the serial number string from the specified 
  368.     Hid device.  
  369. Arguments:
  370.     HidDeviceObject      A handle to a Hid Device Object.
  371.  
  372.     Buffer               Buffer which on return will contain the serial number
  373.                          string returned from the device.  This string is a 
  374.                          wide-character string
  375.     BufferLength         Length of Buffer (in bytes)
  376. Return Value:
  377.     TRUE if successful
  378.     FALSE otherwise  -- Use GetLastError() to get extended error information
  379. --*/
  380. BOOLEAN __stdcall
  381. HidD_GetMsGenreDescriptor (
  382.    IN    HANDLE   HidDeviceObject,
  383.    OUT   PVOID    Buffer,
  384.    IN    ULONG    BufferLength
  385.    );
  386. /*++
  387. Routine Description:
  388.     This function retrieves the Microsoft Genre descriptor from the specified 
  389.     Hid device.  
  390. Arguments:
  391.     HidDeviceObject      A handle to a Hid Device Object.
  392.  
  393.     Buffer               Buffer which on return will contain the descriptor
  394.                          returned from the device.
  395.                          
  396.     BufferLength         Length of Buffer (in bytes)
  397. Return Value:
  398.     TRUE if successful
  399.     FALSE otherwise  -- Use GetLastError() to get extended error information
  400. --*/
  401. #include <poppack.h>
  402. #endif