- Make our IDLs files to not specify a [range] tag for string datatypes, and 0,256 range for an unsigned type. Fixes compiling with newer WIDL and (probably) MIDL.

svn path=/trunk/; revision=44283
This commit is contained in:
Aleksey Bragin 2009-11-24 22:39:25 +00:00
parent 70dc807bf2
commit 1d110c440a
3 changed files with 146 additions and 146 deletions

View file

@ -115,7 +115,7 @@ interface eventlog
[in] USHORT EventType,
[in] USHORT EventCategory,
[in] DWORD EventID,
[in, range(0, 256)] USHORT NumStrings,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in] PRPC_UNICODE_STRING ComputerName,
[in, unique] PRPC_SID UserSID,
@ -178,7 +178,7 @@ interface eventlog
[in] USHORT EventType,
[in] USHORT EventCategory,
[in] DWORD EventID,
[in, range(0, 256)] USHORT NumStrings,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in] PRPC_STRING ComputerName,
[in, unique] PRPC_SID UserSID,
@ -229,7 +229,7 @@ interface eventlog
[in] USHORT EventCategory,
[in] ULONG EventID,
[in] PRPC_UNICODE_STRING SourceName,
[in, range(0, 256)] USHORT NumStrings,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in] PRPC_UNICODE_STRING ComputerName,
[in, unique] PRPC_SID UserSID,

View file

@ -18,10 +18,14 @@ cpp_quote("#ifndef _CFGMGR32_H_")
typedef unsigned long RESOURCEID;
cpp_quote("#endif")
typedef unsigned long DEVPROPTYPE;
typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE, *PPNP_PROP_SIZE;
typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT, *PPNP_PROP_COUNT;
typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN, *PPNP_RPC_STRING_LEN;
typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE, *PPNP_RPC_BUFFER_SIZE;
typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
typedef PNP_PROP_SIZE *PPNP_PROP_SIZE;
typedef PNP_PROP_COUNT *PPNP_PROP_COUNT;
typedef PNP_RPC_STRING_LEN *PPNP_RPC_STRING_LEN;
typedef PNP_RPC_BUFFER_SIZE *PPNP_RPC_BUFFER_SIZE;
cpp_quote("#ifndef _CFG_INCLUDED_")
@ -286,7 +290,7 @@ interface pnp
/* Function 6 */
DWORD PNP_ValidateDeviceInstance(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulFlags);
/* Function 7 */
@ -302,7 +306,7 @@ interface pnp
DWORD PNP_GetRelatedDeviceInstance(
[in] handle_t hBinding,
[in] DWORD ulRelationship,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
[in, out] PNP_RPC_STRING_LEN *pulLength,
[in] DWORD ulFlags);
@ -322,7 +326,7 @@ interface pnp
/* Function 10 */
DWORD PNP_GetDeviceList(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
[in, string, unique] LPWSTR pszFilter,
[out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
[in, out] PNP_RPC_STRING_LEN *pulLength,
[in] DWORD ulFlags);
@ -330,21 +334,21 @@ interface pnp
/* Function 11 */
DWORD PNP_GetDeviceListSize(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
[in, string, unique] LPWSTR pszFilter,
[out] PNP_RPC_BUFFER_SIZE *pulLen,
[in] DWORD ulFlags);
/* Function 12 */
DWORD PNP_GetDepth(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszDeviceID,
[out] DWORD *pulDepth,
[in] DWORD ulFlags);
/* Function 13 */
DWORD PNP_GetDeviceRegProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulProperty,
[in, out] DWORD *pulRegDataType,
[out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
@ -355,7 +359,7 @@ interface pnp
/* Function 14 */
DWORD PNP_SetDeviceRegProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
[in, string, ref] LPWSTR pDeviceId,
[in] DWORD ulProperty,
[in] DWORD ulDataType,
[in, size_is(ulLength)] BYTE *Buffer,
@ -365,23 +369,23 @@ interface pnp
/* Function 15 */
DWORD PNP_GetClassInstance(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
[in, string, ref] LPWSTR pDeviceId,
[out, string, size_is(ulLength)] LPWSTR pszClassInstance,
[in] PNP_RPC_STRING_LEN ulLength);
/* Function 16 */
DWORD PNP_CreateKey(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszSubKey,
[in, string, ref] LPWSTR pszSubKey,
[in] DWORD samDesired,
[in] DWORD ulFlags);
/* Function 17 */
DWORD PNP_DeleteRegistryKey(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszParentKey,
[in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszChildKey,
[in, string, ref] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszParentKey,
[in, string, ref] LPWSTR pszChildKey,
[in] DWORD ulFlags);
/* Function 18 */
@ -393,7 +397,7 @@ interface pnp
/* Function 19 */
DWORD PNP_GetClassName(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
[in, string, ref] LPWSTR pszClassGuid,
[out, string, size_is(*pulLength)] LPWSTR Buffer,
[in, out] PNP_RPC_STRING_LEN *pulLength,
[in] DWORD ulFlags);
@ -401,13 +405,13 @@ interface pnp
/* Function 20 */
DWORD PNP_DeleteClassKey(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
[in, string, ref] LPWSTR pszClassGuid,
[in] DWORD ulFlags);
/* Function 21 */
DWORD PNP_GetInterfaceDeviceAlias(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
[in, string, ref] LPWSTR pszInterfaceDevice,
[in] GUID *AliasInterfaceGuid,
[out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
[in, out] PNP_RPC_STRING_LEN *pulLength,
@ -418,7 +422,7 @@ interface pnp
DWORD PNP_GetInterfaceDeviceList(
[in] handle_t hBinding,
[in] GUID *InterfaceGuid,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, unique] LPWSTR pszDeviceID,
[out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
[in, out] PNP_RPC_BUFFER_SIZE *pulLength,
[in] DWORD ulFlags);
@ -428,15 +432,15 @@ interface pnp
[in] handle_t hBinding,
[out] PNP_RPC_BUFFER_SIZE *pulLen,
[in] GUID *InterfaceGuid,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, unique] LPWSTR pszDeviceID,
[in] DWORD ulFlags);
/* Function 24 */
DWORD PNP_RegisterDeviceClassAssociation(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, unique] LPWSTR pszDeviceID,
[in] GUID *InterfaceGuid,
[in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszReference,
[in, string, unique] LPWSTR pszReference,
[out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
[in, out] PNP_RPC_STRING_LEN *pulLength,
[in, out] PNP_RPC_STRING_LEN *pulTransferLen,
@ -445,13 +449,13 @@ interface pnp
/* Function 25 */
DWORD PNP_UnregisterDeviceClassAssociation(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
[in, string, unique] LPWSTR pszInterfaceDevice,
[in] DWORD ulFlags);
/* Function 26 */
DWORD PNP_GetClassRegProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
[in, string, ref] LPWSTR pszClassGuid,
[in] DWORD ulProperty,
[in, out] DWORD *pulRegDataType,
[out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
@ -462,7 +466,7 @@ interface pnp
/* Function 27 */
DWORD PNP_SetClassRegProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR *pszClassGuid,
[in, string, ref] LPWSTR *pszClassGuid,
[in] DWORD ulProperty,
[in] DWORD ulDataType,
[in, size_is(ulLength)] BYTE *Buffer,
@ -473,7 +477,7 @@ interface pnp
DWORD PNP_CreateDevInst(
[in] handle_t hBinding,
[in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszParentDeviceID,
[in, string, ref] LPWSTR pszParentDeviceID,
[in] PNP_RPC_STRING_LEN ulLength,
[in] DWORD ulFlags);
@ -482,13 +486,13 @@ interface pnp
[in] handle_t hBinding,
[in] DWORD ulMajorAction,
[in] DWORD ulMinorAction,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance1,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance2);
[in, string, unique] LPWSTR pszDeviceInstance1,
[in, string, unique] LPWSTR pszDeviceInstance2);
/* Function 30 */
DWORD PNP_GetDeviceStatus(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, unique] LPWSTR pDeviceID,
[out] DWORD *pulStatus,
[out] DWORD *pulProblem,
[in] DWORD ulFlags);
@ -496,56 +500,53 @@ interface pnp
/* Function 31 */
DWORD PNP_SetDeviceProblem(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, unique] LPWSTR pDeviceID,
[in] DWORD ulProblem,
[in] DWORD ulFlags);
/* Function 32 */
DWORD PNP_DisableDevInst(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, unique] LPWSTR pDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
[in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
/* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
[in] DWORD ulNameLength,
[in] DWORD ulFlags);
/* Function 33 */
DWORD PNP_UninstallDevInst(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, unique] LPWSTR pDeviceID,
[in] DWORD ulFlags);
/* Function 34 */
DWORD PNP_AddID(
[in] handle_t hBinding,
[in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszID,
[in, string, unique] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszID,
[in] DWORD ulFlags);
/* Function 35 */
DWORD PNP_RegisterDriver(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszDeviceID,
[in] DWORD ulFlags);
/* Function 36 */
DWORD PNP_QueryRemove(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
[in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
/* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
[in] DWORD ulNameLength,
[in] DWORD ulFlags);
/* Function 37 */
DWORD PNP_RequestDeviceEject(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
[in, string, ref] LPWSTR pszDeviceID,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
[in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
/* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
[in] DWORD ulNameLength,
[in] DWORD ulFlags);
@ -564,12 +565,11 @@ interface pnp
DWORD PNP_HwProfFlags(
[in] handle_t hBinding,
[in] DWORD ulAction,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulConfig,
[in, out] DWORD *pulValue,
[in, out, unique] PPNP_VETO_TYPE pVetoType,
[in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
/* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
[in] DWORD ulNameLength,
[in] DWORD ulFlags);
@ -585,7 +585,7 @@ interface pnp
/* Function 42 */
DWORD PNP_AddEmptyLogConf(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulPriority,
[out] DWORD *pulLogConfTag,
[in] DWORD ulFlags);
@ -593,7 +593,7 @@ interface pnp
/* Function 43 */
DWORD PNP_FreeLogConf(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
[in] DWORD ulLogConfTag,
[in] DWORD ulFlags);
@ -601,7 +601,7 @@ interface pnp
/* Function 44 */
DWORD PNP_GetFirstLogConf(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
[out] DWORD *pulLogConfTag,
[in] DWORD ulFlags);
@ -609,7 +609,7 @@ interface pnp
/* Function 45 */
DWORD PNP_GetNextLogConf(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfType,
[in] DWORD ulCurrentTag,
[out] DWORD *pulNextTag,
@ -618,7 +618,7 @@ interface pnp
/* Function 46 */
DWORD PNP_GetLogConfPriority(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulType,
[in] DWORD ulTag,
[out] DWORD *pPriority,
@ -627,7 +627,7 @@ interface pnp
/* Function 47 */
DWORD PNP_AddResDes(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID ResourceID,
@ -639,7 +639,7 @@ interface pnp
/* Function 48 */
DWORD PNP_FreeResDes(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID ResourceID,
@ -651,7 +651,7 @@ interface pnp
/* Function 49 */
DWORD PNP_GetNextResDes(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID ResourceID,
@ -663,7 +663,7 @@ interface pnp
/* Function 50 */
DWORD PNP_GetResDesData(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID ResourceID,
@ -675,7 +675,7 @@ interface pnp
/* Function 51 */
DWORD PNP_GetResDesDataSize(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID ResourceID,
@ -686,7 +686,7 @@ interface pnp
/* Function 52 */
DWORD PNP_ModifyResDes(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] DWORD ulLogConfTag,
[in] DWORD ulLogConfType,
[in] RESOURCEID CurrentResourceID,
@ -699,7 +699,7 @@ interface pnp
/* Function 53 */
DWORD PNP_DetectResourceConflict(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] RESOURCEID ResourceID,
[in, size_is(ResourceLen)] BYTE *ResourceData,
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
@ -709,7 +709,7 @@ interface pnp
/* Function 54 */
DWORD PNP_QueryResConfList(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref] LPWSTR pDeviceID,
[in] RESOURCEID ResourceID,
[in, size_is(ResourceLen)] BYTE *ResourceData,
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
@ -747,8 +747,8 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501")
/* Function 61 */
DWORD PNP_GetCustomDevProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
[in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR CustomPropName,
[in, string, ref] LPWSTR pDeviceID,
[in, string, ref] LPWSTR CustomPropName,
[out] DWORD *pulRegDataType,
[out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
[out] PNP_RPC_STRING_LEN *pulTransferLen,
@ -779,9 +779,9 @@ cpp_quote("#if _WIN32_WINNT >= 0x0600")
/* Function 65 */
DWORD PNP_GetObjectPropKeys(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
[in, string, ref] LPWSTR ObjectName,
[in] DWORD ObjectType,
[in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
[in, string, unique] LPWSTR PropertyCultureName,
[in, out] PNP_PROP_COUNT *PropertyCount,
[out] PNP_PROP_COUNT *TransferLen,
[out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
@ -790,9 +790,9 @@ cpp_quote("#if _WIN32_WINNT >= 0x0600")
/* Function 66 */
DWORD PNP_GetObjectProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
[in, string, ref] LPWSTR ObjectName,
[in] DWORD ObjectType,
[in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
[in, string, unique] LPWSTR PropertyCultureName,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[in, out] PNP_PROP_SIZE *PropertySize,
@ -803,9 +803,9 @@ cpp_quote("#if _WIN32_WINNT >= 0x0600")
/* Function 67 */
DWORD PNP_SetObjectProp(
[in] handle_t hBinding,
[in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
[in, string, ref] LPWSTR ObjectName,
[in] DWORD ObjectType,
[in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
[in, string, unique] LPWSTR PropertyCultureName,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in] PNP_PROP_SIZE PropertySize,

View file

@ -56,26 +56,26 @@ typedef struct _SERVICE_STATUS_PROCESS {
} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
typedef struct _ENUM_SERVICE_STATUSA {
[string, range(0, 8 * 1024)] LPSTR lpServiceName;
[string, range(0, 8 * 1024)] LPSTR lpDisplayName;
[string] LPSTR lpServiceName;
[string] LPSTR lpDisplayName;
SERVICE_STATUS ServiceStatus;
} ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA;
typedef struct _ENUM_SERVICE_STATUSW {
[string, range(0, 8 * 1024)] LPWSTR lpServiceName;
[string, range(0, 8 * 1024)] LPWSTR lpDisplayName;
[string] LPWSTR lpServiceName;
[string] LPWSTR lpDisplayName;
SERVICE_STATUS ServiceStatus;
} ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW;
typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
[string, range(0, 8 * 1024)] LPSTR lpServiceName;
[string, range(0, 8 * 1024)] LPSTR lpDisplayName;
[string] LPSTR lpServiceName;
[string] LPSTR lpDisplayName;
SERVICE_STATUS_PROCESS ServiceStatusProcess;
} ENUM_SERVICE_STATUS_PROCESSA, *LPENUM_SERVICE_STATUS_PROCESSA;
typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
[string, range(0, 8 * 1024)] LPWSTR lpServiceName;
[string, range(0, 8 * 1024)] LPWSTR lpDisplayName;
[string] LPWSTR lpServiceName;
[string] LPWSTR lpDisplayName;
SERVICE_STATUS_PROCESS ServiceStatusProcess;
} ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW;
@ -83,11 +83,11 @@ typedef struct _QUERY_SERVICE_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
[string, range(0, 8 * 1024)] LPSTR lpBinaryPathName;
[string, range(0, 8 * 1024)] LPSTR lpLoadOrderGroup;
[string] LPSTR lpBinaryPathName;
[string] LPSTR lpLoadOrderGroup;
DWORD dwTagId;
[string, range(0, 8 * 1024)] LPSTR lpDependencies;
[string, range(0, 8 * 1024)] LPSTR lpServiceStartName;
[string] LPSTR lpDependencies;
[string] LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
@ -95,23 +95,23 @@ typedef struct _QUERY_SERVICE_CONFIGW {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
[string, range(0, 8 * 1024)] LPWSTR lpBinaryPathName;
[string, range(0, 8 * 1024)] LPWSTR lpLoadOrderGroup;
[string] LPWSTR lpBinaryPathName;
[string] LPWSTR lpLoadOrderGroup;
DWORD dwTagId;
[string, range(0, 8 * 1024)] LPWSTR lpDependencies;
[string, range(0, 8 * 1024)] LPWSTR lpServiceStartName;
[string] LPWSTR lpDependencies;
[string] LPWSTR lpServiceStartName;
LPWSTR lpDisplayName;
} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
typedef struct _QUERY_SERVICE_LOCK_STATUSA {
DWORD fIsLocked;
[string, range(0, 8 * 1024)] LPSTR lpLockOwner;
[string] LPSTR lpLockOwner;
DWORD dwLockDuration;
} QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
typedef struct _QUERY_SERVICE_LOCK_STATUSW {
DWORD fIsLocked;
[string, range(0, 8 * 1024)] LPWSTR lpLockOwner;
[string] LPWSTR lpLockOwner;
DWORD dwLockDuration;
} QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
@ -132,25 +132,25 @@ typedef [v1_enum] enum _SC_ENUM_TYPE {
} SC_ENUM_TYPE;
typedef struct _SERVICE_DESCRIPTIONA {
[string, range(0, 8 * 1024)] LPSTR lpDescription;
[string] LPSTR lpDescription;
} SERVICE_DESCRIPTIONA, *LPSERVICE_DESCRIPTIONA;
typedef struct _SERVICE_DESCRIPTIONW {
[string, range(0, 8 * 1024)] LPWSTR lpDescription;
[string] LPWSTR lpDescription;
} SERVICE_DESCRIPTIONW, *LPSERVICE_DESCRIPTIONW;
typedef struct _SERVICE_FAILURE_ACTIONSA {
DWORD dwResetPeriod;
[string, range(0, 8 * 1024)] LPSTR lpRebootMsg;
[string, range(0, 8 * 1024)] LPSTR lpCommand;
[string] LPSTR lpRebootMsg;
[string] LPSTR lpCommand;
[range(0, 1024)] DWORD cActions;
[size_is(cActions)] SC_ACTION* lpsaActions;
} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA;
typedef struct _SERVICE_FAILURE_ACTIONSW {
DWORD dwResetPeriod;
[string, range(0, 8 * 1024)] LPWSTR lpRebootMsg;
[string, range(0, 8 * 1024)] LPWSTR lpCommand;
[string] LPWSTR lpRebootMsg;
[string] LPWSTR lpCommand;
[range(0, 1024)] DWORD cActions;
[size_is(cActions)] SC_ACTION* lpsaActions;
} SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW;
@ -189,7 +189,7 @@ typedef struct _SC_RPC_CONFIG_INFOA {
[case(6)] LPSERVICE_RPC_REQUIRED_PRIVILEGES_INFO psrp;
[case(7)] LPSERVICE_PRESHUTDOWN_INFO psps;
} DUMMYUNIONNAME;
[string, range(0, 8 * 1024)] LPSTR lpDescription; //FIXME
[string] LPSTR lpDescription; //FIXME
} SC_RPC_CONFIG_INFOA, *LPSC_RPC_CONFIG_INFOA;
typedef struct _SC_RPC_CONFIG_INFOW {
@ -224,7 +224,7 @@ typedef struct _SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 {
DWORD dwNotificationStatus;
DWORD dwSequence;
DWORD dwNotificationTriggered;
[string, range(0, 64 * 1024)] PWSTR pszServiceNames;
[string] PWSTR pszServiceNames;
} SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2, *PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2;
typedef struct _SC_RPC_NOTIFY_PARAMS {
@ -270,12 +270,12 @@ typedef [v1_enum] enum _SC_STATUS_TYPE {
typedef struct _SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA {
DWORD dwReason;
[string, range(0, SC_MAX_COMMENT_LENGTH)] LPSTR pszComment;
[string] LPSTR pszComment;
} SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA, *LPSERVICE_CONTROL_STATUS_REASON_IN_PARAMSA;
typedef struct _SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW {
DWORD dwReason;
[string, range(0, SC_MAX_COMMENT_LENGTH)] LPWSTR pszComment;
[string] LPWSTR pszComment;
} SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW, *LPSERVICE_CONTROL_STATUS_REASON_IN_PARAMSW;
typedef struct _SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS {
@ -287,11 +287,11 @@ typedef SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 SERVICE_NOTIFY_STATUS_CHANGE_PARAM
cpp_quote("#endif")
typedef struct _STRING_PTRSA {
[string, range(0, SC_MAX_ARGUMENT_LENGTH)] LPSTR StringPtr;
[string] LPSTR StringPtr;
} STRING_PTRSA, *PSTRING_PTRSA, *LPSTRING_PTRSA;
typedef struct _STRING_PTRSW {
[string, range(0, SC_MAX_ARGUMENT_LENGTH)] LPWSTR StringPtr;
[string] LPWSTR StringPtr;
} STRING_PTRSW, *PSTRING_PTRSW, *LPSTRING_PTRSW;
[
@ -351,7 +351,7 @@ interface svcctl
/* Function 9 */
DWORD RNotifyBootConfigStatus(
[in, string, unique, range(0, SC_MAX_COMPUTER_NAME_LENGTH)] SVCCTL_HANDLEW lpMachineName,
[in, string, unique] SVCCTL_HANDLEW lpMachineName,
[in] DWORD BootAcceptable);
/* Function 10 */
@ -368,31 +368,31 @@ interface svcctl
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, unique, range(0, SC_MAX_PATH_LENGTH)] LPWSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_PATH_LENGTH)] LPWSTR lpLoadOrderGroup,
[in, string, unique] LPWSTR lpBinaryPathName,
[in, string, unique] LPWSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPWSTR lpServiceStartName,
[in, string, unique] LPWSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpDisplayName);
[in, string, unique] LPWSTR lpDisplayName);
/* Function 12 */
DWORD RCreateServiceW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR lpServiceName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR lpDisplayName,
[in, string] LPCWSTR lpServiceName,
[in, string, unique] LPCWSTR lpDisplayName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, range(0, SC_MAX_PATH_LENGTH)] LPCWSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR lpLoadOrderGroup,
[in, string] LPCWSTR lpBinaryPathName,
[in, string, unique] LPCWSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPCWSTR lpServiceStartName,
[in, string, unique] LPCWSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[out] LPSC_RPC_HANDLE lpServiceHandle);
@ -419,15 +419,15 @@ interface svcctl
/* Function 15 */
DWORD ROpenSCManagerW(
[in, string, unique, range(0, SC_MAX_COMPUTER_NAME_LENGTH)] SVCCTL_HANDLEW lpMachineName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpDatabaseName,
[in, string, unique] SVCCTL_HANDLEW lpMachineName,
[in, string, unique] LPWSTR lpDatabaseName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpScHandle);
/* Function 16 */
DWORD ROpenServiceW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpServiceName,
[in, string] LPWSTR lpServiceName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpServiceHandle);
@ -455,15 +455,15 @@ interface svcctl
/* Function 20 */
DWORD RGetServiceDisplayNameW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR lpServiceName,
[out, string, range(1, 4*1024+1), size_is(*lpcchBuffer + 1)] LPWSTR lpDisplayName,
[in, string] LPCWSTR lpServiceName,
[out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpDisplayName,
[in, out] DWORD* lpcchBuffer);
/* Function 21 */
DWORD RGetServiceKeyNameW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR lpDisplayName,
[out, string, range(1, 4*1024+1), size_is(*lpcchBuffer + 1)] LPWSTR lpServiceName,
[in, string] LPCWSTR lpDisplayName,
[out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpServiceName,
[in, out] DWORD* lpcchBuffer);
/* Function 22 */
@ -480,31 +480,31 @@ interface svcctl
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, unique, range(0, SC_MAX_PATH_LENGTH)] LPSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpLoadOrderGroup,
[in, string, unique] LPSTR lpBinaryPathName,
[in, string, unique] LPSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPSTR lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPSTR lpServiceStartName,
[in, string, unique] LPSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpDisplayName);
[in, string, unique] LPSTR lpDisplayName);
/* Function 24 */
DWORD RCreateServiceA(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpServiceName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpDisplayName,
[in, string] LPSTR lpServiceName,
[in, string, unique] LPSTR lpDisplayName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, range(0, SC_MAX_PATH_LENGTH)] LPSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpLoadOrderGroup,
[in, string] LPSTR lpBinaryPathName,
[in, string, unique] LPSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPSTR lpServiceStartName,
[in, string, unique] LPSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[out] LPSC_RPC_HANDLE lpServiceHandle);
@ -531,15 +531,15 @@ interface svcctl
/* Function 27 */
DWORD ROpenSCManagerA(
[in, string, unique, range(0, SC_MAX_COMPUTER_NAME_LENGTH)] SVCCTL_HANDLEA lpMachineName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpDatabaseName,
[in, string, unique] SVCCTL_HANDLEA lpMachineName,
[in, string, unique] LPSTR lpDatabaseName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpScHandle);
/* Function 28 */
DWORD ROpenServiceA(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpServiceName,
[in, string] LPSTR lpServiceName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpServiceHandle);
@ -567,21 +567,21 @@ interface svcctl
/* Function 32 */
DWORD RGetServiceDisplayNameA(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPCSTR lpServiceName,
[in, string] LPCSTR lpServiceName,
[out, string, size_is(*lpcchBuffer)] LPSTR lpDisplayName,
[in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
/* Function 33 */
DWORD RGetServiceKeyNameA(
[in] SC_RPC_HANDLE hSCManager,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPCSTR lpDisplayName,
[in, string] LPCSTR lpDisplayName,
[out, string, size_is(*lpcchBuffer)] LPSTR lpKeyName,
[in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
/* Function 34 */
DWORD RI_ScGetCurrentGroupStateW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpLoadOrderGroup,
[in, string, unique] LPWSTR lpLoadOrderGroup,
[out] LPDWORD lpState);
/* Function 35 */
@ -594,7 +594,7 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
[out] LPBOUNDED_DWORD_256K lpServicesReturned,
[in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR pszGroupName);
[in, string, unique] LPCWSTR pszGroupName);
/* Function 36 */
DWORD RChangeServiceConfig2A(
@ -641,7 +641,7 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
[out] LPBOUNDED_DWORD_256K lpServicesReturned,
[in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPCSTR pszGroupName);
[in, string, unique] LPCSTR pszGroupName);
/* Function 42 */
DWORD REnumServicesStatusExW(
@ -654,7 +654,7 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
[out] LPBOUNDED_DWORD_256K lpServicesReturned,
[in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPCWSTR pszGroupName);
[in, string, unique] LPCWSTR pszGroupName);
/* Function 43 */
DWORD RSendTSMessage(
@ -663,18 +663,18 @@ interface svcctl
/* Function 44 */
DWORD RCreateServiceWOW64A(
[in] handle_t BindingHandle,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpServiceName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpDisplayName,
[in, string] LPSTR lpServiceName,
[in, string, unique] LPSTR lpDisplayName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, range(0, SC_MAX_PATH_LENGTH)] LPSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPSTR lpLoadOrderGroup,
[in, string] LPSTR lpBinaryPathName,
[in, string, unique] LPSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPSTR lpServiceStartName,
[in, string, unique] LPSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[out] LPSC_RPC_HANDLE lpServiceHandle);
@ -682,18 +682,18 @@ interface svcctl
/* Function 45 */
DWORD RCreateServiceWOW64W(
[in] handle_t BindingHandle,
[in, string, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpServiceName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpDisplayName,
[in, string] LPWSTR lpServiceName,
[in, string, unique] LPWSTR lpDisplayName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
[in] DWORD dwErrorControl,
[in, string, range(0, SC_MAX_PATH_LENGTH)] LPWSTR lpBinaryPathName,
[in, string, unique, range(0, SC_MAX_NAME_LENGTH)] LPWSTR lpLoadOrderGroup,
[in, string] LPWSTR lpBinaryPathName,
[in, string, unique] LPWSTR lpLoadOrderGroup,
[in, out, unique] LPDWORD lpdwTagId,
[in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
[in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
[in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] LPWSTR lpServiceStartName,
[in, string, unique] LPWSTR lpServiceStartName,
[in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
[in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
[out] LPSC_RPC_HANDLE lpServiceHandle);