ReactOS 0.4.17-dev-470-gf9e3448
wksta_new.c
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: NetAPI DLL
4 * FILE: reactos/dll/win32/netapi32/wksta_new.c
5 * PURPOSE: Workstation service interface code
6 *
7 * PROGRAMMERS: Eric Kohl
8 */
9
10/* INCLUDES ******************************************************************/
11
12#include "netapi32.h"
13#include "wkssvc_c.h"
14
16
17/* FUNCTIONS *****************************************************************/
18
20{
22}
23
24
26{
28}
29
30
33{
35 LPWSTR pszStringBinding;
37
38 TRACE("WKSSVC_IDENTIFY_HANDLE_bind() called\n");
39
41 L"ncacn_np",
42 pszSystemName,
43 L"\\pipe\\wkssvc",
44 NULL,
45 &pszStringBinding);
46 if (status)
47 {
48 TRACE("RpcStringBindingCompose returned 0x%x\n", status);
49 return NULL;
50 }
51
52 /* Set the binding handle that will be used to bind to the server. */
53 status = RpcBindingFromStringBindingW(pszStringBinding,
54 &hBinding);
55 if (status)
56 {
57 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status);
58 }
59
60 status = RpcStringFreeW(&pszStringBinding);
61 if (status)
62 {
63// TRACE("RpcStringFree returned 0x%x\n", status);
64 }
65
66 return hBinding;
67}
68
69
70void __RPC_USER
73{
75
76 TRACE("WKSSVC_IDENTIFY_HANDLE_unbind() called\n");
77
79 if (status)
80 {
81 TRACE("RpcBindingFree returned 0x%x\n", status);
82 }
83}
84
85
88{
90 LPWSTR pszStringBinding;
92
93 TRACE("WKSSVC_IMPERSONATE_HANDLE_bind() called\n");
94
96 L"ncacn_np",
97 pszSystemName,
98 L"\\pipe\\wkssvc",
99 NULL,
100 &pszStringBinding);
101 if (status)
102 {
103 TRACE("RpcStringBindingCompose returned 0x%x\n", status);
104 return NULL;
105 }
106
107 /* Set the binding handle that will be used to bind to the server. */
108 status = RpcBindingFromStringBindingW(pszStringBinding,
109 &hBinding);
110 if (status)
111 {
112 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status);
113 }
114
115 status = RpcStringFreeW(&pszStringBinding);
116 if (status)
117 {
118// TRACE("RpcStringFree returned 0x%x\n", status);
119 }
120
121 return hBinding;
122}
123
124
125void __RPC_USER
128{
130
131 TRACE("WKSSVC_IMPERSONATE_HANDLE_unbind() called\n");
132
134 if (status)
135 {
136 TRACE("RpcBindingFree returned 0x%x\n", status);
137 }
138}
139
140
143 LPCWSTR pszServerName,
144 handle_t *pBindingHandle)
145{
147 LPWSTR pszStringBinding;
149
150 FIXME("NetpBind(%S)\n", pszServerName);
151
152 *pBindingHandle = NULL;
153
155 L"ncacn_np",
156 (LPWSTR)pszServerName,
157 L"\\pipe\\wkssvc",
158 NULL,
159 &pszStringBinding);
160 if (status)
161 {
162 FIXME("RpcStringBindingCompose returned 0x%x\n", status);
164 }
165
166 /* Set the binding handle that will be used to bind to the server. */
167 status = RpcBindingFromStringBindingW(pszStringBinding,
168 &hBinding);
169 if (status)
170 {
171 FIXME("RpcBindingFromStringBinding returned 0x%x\n", status);
172 }
173
174 status = RpcStringFreeW(&pszStringBinding);
175 if (status)
176 {
177 FIXME("RpcStringFree returned 0x%x\n", status);
178 }
179
180 *pBindingHandle = hBinding;
181
183}
184
185
189{
191
192 FIXME("NetpUnbind(%p)\n", BindingHandle);
193
194 status = RpcBindingFree(&wkssvc_hBinding);
195 if (status)
196 {
197 TRACE("RpcBindingFree returned 0x%x\n", status);
199 }
200
201 return NERR_Success;
202}
203
204
206WINAPI
209 _In_ LPCWSTR AlternateName,
210 _In_opt_ LPCWSTR DomainAccount,
211 _In_opt_ LPCWSTR DomainAccountPassword,
213{
214 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
217
218 TRACE("NetAddAlternateComputerName(%s %s %s %s 0x%lx)\n",
219 debugstr_w(Server), debugstr_w(AlternateName), debugstr_w(DomainAccount),
220 debugstr_w(DomainAccountPassword), Reserved);
221
222 /* FIXME */
223
226 if (status != NERR_Success)
227 {
228 ERR("NetpBind() failed (status 0x%lx)\n", status);
229 return status;
230 }
231
233 {
235 (PWSTR)Server,
236 (PWSTR)AlternateName,
237 (PWSTR)DomainAccount,
238 EncryptedPassword,
239 Reserved);
240 }
242 {
244 }
246
248
249 return status;
250}
251
252
254WINAPI
259 _Out_ PDWORD EntryCount,
260 _Out_ LPWSTR **ComputerNames)
261{
262 PNET_COMPUTER_NAME_ARRAY ComputerNameArray = NULL;
264 PWSTR *NameBuffer = NULL, Ptr;
266
267 TRACE("NetEnumerateComputerNames(%s %lu %lu %p %p)\n",
268 debugstr_w(Server), NameType, Reserved, EntryCount, ComputerNames);
269
271 {
273 NameType,
274 Reserved,
275 &ComputerNameArray);
276 if (status == NERR_Success)
277 {
278 *EntryCount = ComputerNameArray->EntryCount;
279
280 BufferSize = 0;
281 for (i = 0; i < ComputerNameArray->EntryCount; i++)
282 {
283 BufferSize += ComputerNameArray->ComputerNames[i].Length + sizeof(WCHAR) + sizeof(PWSTR);
284 }
285
287 if (status == NERR_Success)
288 {
289 ZeroMemory(NameBuffer, BufferSize);
290
291 Ptr = (PWSTR)((ULONG_PTR)NameBuffer + ComputerNameArray->EntryCount * sizeof(PWSTR));
292 for (i = 0; i < ComputerNameArray->EntryCount; i++)
293 {
294 NameBuffer[i] = Ptr;
296 ComputerNameArray->ComputerNames[i].Buffer,
297 ComputerNameArray->ComputerNames[i].Length);
298 Ptr = (PWSTR)((ULONG_PTR)Ptr + ComputerNameArray->ComputerNames[i].Length + sizeof(WCHAR));
299 }
300
301 *ComputerNames = NameBuffer;
302 }
303 }
304 }
306 {
308 }
310
311 return status;
312}
313
314
316WINAPI
318 _In_ LPCWSTR lpServer,
320 _Out_ PNETSETUP_JOIN_STATUS BufferType)
321{
322 PWSTR pName = NULL;
324
325 TRACE("NetGetJoinInformation(%s %p %p)\n",
326 debugstr_w(lpServer), lpNameBuffer, BufferType);
327
328 if (lpNameBuffer == NULL || BufferType == NULL)
330
332 {
334 &pName,
335 BufferType);
336 }
338 {
340 }
342
343 if (status == NERR_Success)
345
346 return status;
347}
348
349
351WINAPI
353 _In_opt_ LPCWSTR lpServer,
354 _In_ LPCWSTR lpDomain,
355 _In_opt_ LPCWSTR lpAccount,
356 _In_opt_ LPCWSTR lpPassword,
357 _Out_ DWORD *OUCount,
358 _Out_ LPWSTR **OUs)
359{
360 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
363
364 TRACE("NetGetJoinableOUs(%s %s %s %s %p %p)\n",
365 debugstr_w(lpServer), debugstr_w(lpDomain), debugstr_w(lpAccount),
366 debugstr_w(lpPassword), OUCount, OUs);
367
368 /* FIXME */
369
370 status = NetpBind(lpServer,
372 if (status != NERR_Success)
373 {
374 ERR("NetpBind() failed (status 0x%lx)\n", status);
375 return status;
376 }
377
379 {
381 (PWSTR)lpServer,
382 (PWSTR)lpDomain,
383 (PWSTR)lpAccount,
384 EncryptedPassword,
385 OUCount,
386 OUs);
387 }
389 {
391 }
393
395
396 return status;
397}
398
399
401WINAPI
403 _In_opt_ LPCWSTR lpServer,
404 _In_ LPCWSTR lpDomain,
405 _In_opt_ LPCWSTR lpAccountOU,
406 _In_opt_ LPCWSTR lpAccount,
407 _In_opt_ LPCWSTR lpPassword,
408 _In_ DWORD fJoinOptions)
409{
410 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
413
414 FIXME("NetJoinDomain(%s %s %s %s 0x%lx)\n",
415 debugstr_w(lpServer), debugstr_w(lpDomain), debugstr_w(lpAccountOU),
416 debugstr_w(lpAccount), debugstr_w(lpPassword), fJoinOptions);
417
418 /* FIXME */
419
420 status = NetpBind(lpServer,
422 if (status != NERR_Success)
423 {
424 ERR("NetpBind() failed (status 0x%lx)\n", status);
425 return status;
426 }
427
429 {
431 (PWSTR)lpServer,
432 (PWSTR)lpDomain,
433 (PWSTR)lpAccountOU,
434 (PWSTR)lpAccount,
435 EncryptedPassword,
436 fJoinOptions);
437 }
439 {
440 RPC_STATUS rpcStatus = RpcExceptionCode();
441 FIXME("Exception 0x%lx\n", rpcStatus);
442 status = I_RpcMapWin32Status(rpcStatus);
443 }
445
447
448 return status;
449}
450
451
453WINAPI
456 _In_ LPCWSTR AlternateName,
457 _In_opt_ LPCWSTR DomainAccount,
458 _In_opt_ LPCWSTR DomainAccountPassword,
460{
461 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
464
465 TRACE("NetRemoveAlternateComputerName(%s %s %s %s 0x%lx)\n",
466 debugstr_w(Server), debugstr_w(AlternateName), debugstr_w(DomainAccount),
467 debugstr_w(DomainAccountPassword), Reserved);
468
469 /* FIXME */
470
473 if (status != NERR_Success)
474 {
475 ERR("NetpBind() failed (status 0x%lx)\n", status);
476 return status;
477 }
478
480 {
482 (PWSTR)Server,
483 (PWSTR)AlternateName,
484 (PWSTR)DomainAccount,
485 EncryptedPassword,
486 Reserved);
487 }
489 {
491 }
493
495
496 return status;
497}
498
499
501WINAPI
503 _In_opt_ LPCWSTR lpServer,
504 _In_opt_ LPCWSTR lpNewMachineName,
505 _In_opt_ LPCWSTR lpAccount,
506 _In_opt_ LPCWSTR lpPassword,
507 _In_ DWORD fRenameOptions)
508{
509 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
512
513 TRACE("NetRenameMachineInDomain(%s %s %s %s 0x%lx)\n",
514 debugstr_w(lpServer), debugstr_w(lpNewMachineName), debugstr_w(lpAccount),
515 debugstr_w(lpPassword), fRenameOptions);
516
517 /* FIXME */
518
519 status = NetpBind(lpServer,
521 if (status != NERR_Success)
522 {
523 ERR("NetpBind() failed (status 0x%lx)\n", status);
524 return status;
525 }
526
528 {
530 (PWSTR)lpServer,
531 (PWSTR)lpNewMachineName,
532 (PWSTR)lpAccount,
533 EncryptedPassword,
534 fRenameOptions);
535 }
537 {
539 }
541
543
544 return status;
545}
546
547
549WINAPI
552 _In_ LPCWSTR PrimaryName,
553 _In_opt_ LPCWSTR DomainAccount,
554 _In_opt_ LPCWSTR DomainAccountPassword,
556{
557 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
560
561 TRACE("NetSetPrimaryComputerName(%s %s %s %s %lu)\n",
562 debugstr_w(Server), debugstr_w(PrimaryName), debugstr_w(DomainAccount),
563 debugstr_w(DomainAccountPassword), Reserved);
564
565 /* FIXME */
566
569 if (status != NERR_Success)
570 {
571 ERR("NetpBind() failed (status 0x%lx)\n", status);
572 return status;
573 }
574
576 {
578 (PWSTR)Server,
579 (PWSTR)PrimaryName,
580 (PWSTR)DomainAccount,
581 EncryptedPassword,
582 Reserved);
583 }
585 {
587 }
589
591
592 return status;
593}
594
595
597WINAPI
599 _In_opt_ LPCWSTR lpServer,
600 _In_opt_ LPCWSTR lpAccount,
601 _In_opt_ LPCWSTR lpPassword,
602 _In_ DWORD fUnjoinOptions)
603{
604 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
607
608 TRACE("NetUnjoinDomain(%s %s %s %s 0x%lx)\n",
609 debugstr_w(lpServer), debugstr_w(lpAccount),
610 debugstr_w(lpPassword), fUnjoinOptions);
611
612 /* FIXME */
613
614 status = NetpBind(lpServer,
616 if (status != NERR_Success)
617 {
618 ERR("NetpBind() failed (status 0x%lx)\n", status);
619 return status;
620 }
621
623 {
625 (PWSTR)lpServer,
626 (PWSTR)lpAccount,
627 EncryptedPassword,
628 fUnjoinOptions);
629 }
631 {
633 }
635
637
638 return status;
639}
640
641
643WINAPI
645 _In_ LMSTR UncServerName,
647 _In_ LPBYTE Buf,
648 _Out_ LPDWORD ParmError)
649{
651
652 TRACE("NetUseAdd(%s %d %p %p)\n", debugstr_w(UncServerName),
653 Level, Buf, ParmError);
654
656 {
657 status = NetrUseAdd(UncServerName,
658 Level,
659 (LPUSE_INFO)Buf,
660 ParmError);
661 }
663 {
665 }
667
668 return status;
669}
670
671
673WINAPI
675 _In_ LMSTR UncServerName,
676 _In_ LMSTR UseName,
677 _In_ DWORD ForceCond)
678{
680
681 TRACE("NetUseDel(%s %s %d)\n", debugstr_w(UncServerName),
682 debugstr_w(UseName), ForceCond);
683
685 {
686 status = NetrUseDel(UncServerName,
687 UseName,
688 ForceCond);
689 }
691 {
693 }
695
696 return status;
697}
698
699
701WINAPI
703 _In_ LMSTR UncServerName,
705 _Out_ LPBYTE *BufPtr,
706 _In_ DWORD PreferedMaximumSize,
707 _Out_ LPDWORD EntriesRead,
708 _Out_ LPDWORD TotalEntries,
709 _Inout_ LPDWORD ResumeHandle)
710{
711 USE_ENUM_STRUCT UseEnumInfo;
712 USE_INFO_0_CONTAINER Container0;
713 USE_INFO_1_CONTAINER Container1;
714 USE_INFO_2_CONTAINER Container2;
716
717 TRACE("NetUseEnum(%s, %d, %p, %d, %p, %p, %p)\n", debugstr_w(UncServerName),
718 Level, BufPtr, PreferedMaximumSize, EntriesRead, TotalEntries, ResumeHandle);
719
720 UseEnumInfo.Level = Level;
721 switch (Level)
722 {
723 case 0:
724 UseEnumInfo.UseInfo.Level0 = &Container0;
725 Container0.EntriesRead = 0;
726 Container0.Buffer = NULL;
727 break;
728
729 case 1:
730 UseEnumInfo.UseInfo.Level1 = &Container1;
731 Container1.EntriesRead = 0;
732 Container1.Buffer = NULL;
733 break;
734
735 case 2:
736 UseEnumInfo.UseInfo.Level2 = &Container2;
737 Container2.EntriesRead = 0;
738 Container2.Buffer = NULL;
739 break;
740
741 default:
743 }
744
746 {
747 status = NetrUseEnum(UncServerName,
748 &UseEnumInfo,
749 PreferedMaximumSize,
750 TotalEntries,
751 ResumeHandle);
753 {
754 switch (Level)
755 {
756 case 0:
757 *BufPtr = (LPBYTE)UseEnumInfo.UseInfo.Level0->Buffer;
758 *EntriesRead = UseEnumInfo.UseInfo.Level0->EntriesRead;
759 break;
760
761 case 1:
762 *BufPtr = (LPBYTE)UseEnumInfo.UseInfo.Level1->Buffer;
763 *EntriesRead = UseEnumInfo.UseInfo.Level1->EntriesRead;
764 break;
765
766 case 2:
767 *BufPtr = (LPBYTE)UseEnumInfo.UseInfo.Level2->Buffer;
768 *EntriesRead = UseEnumInfo.UseInfo.Level2->EntriesRead;
769 break;
770 }
771 }
772 }
774 {
776 }
778
779 return status;
780}
781
782
784WINAPI
786 _In_ LMSTR UncServerName,
787 _In_ LMSTR UseName,
789 _Out_ LPBYTE *BufPtr)
790{
792
793 TRACE("NetUseGetInfo(%s, %s, %d, %p)\n", debugstr_w(UncServerName),
794 debugstr_w(UseName), Level, BufPtr);
795
796 *BufPtr = NULL;
797
799 {
800 status = NetrUseGetInfo(UncServerName,
801 UseName,
802 Level,
803 (LPUSE_INFO)BufPtr);
804 }
806 {
808 }
810
811 return status;
812}
813
814
816WINAPI
818 _In_opt_ LPCWSTR lpServer,
820 _In_opt_ LPCWSTR lpAccount,
821 _In_opt_ LPCWSTR lpPassword,
823{
824 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
827
828 TRACE("NetValidateName(%s %s %s %s %u)\n",
829 debugstr_w(lpServer), debugstr_w(lpName), debugstr_w(lpAccount),
830 debugstr_w(lpPassword), NameType);
831
832 /* FIXME */
833
834 status = NetpBind(lpServer,
836 if (status != NERR_Success)
837 {
838 ERR("NetpBind() failed (status 0x%lx)\n", status);
839 return status;
840 }
841
843 {
845 (PWSTR)lpServer,
846 (PWSTR)lpName,
847 (PWSTR)lpAccount,
848 EncryptedPassword,
849 NameType);
850 }
852 {
854 }
856
858
859 return status;
860}
861
862
864WINAPI
866 _In_ LPWSTR servername,
869{
871
872 TRACE("NetWkstaGetInfo(%s, %d, %p)\n",
873 debugstr_w(servername), level, bufptr);
874
875 if (bufptr == NULL)
877
878 *bufptr = NULL;
879
881 {
882 status = NetrWkstaGetInfo(servername,
883 level,
885 }
887 {
889 }
891
892 return status;
893}
894
895
897WINAPI
899 _In_ LPWSTR servername,
902 _Out_ LPDWORD parm_err)
903{
905
906 TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n",
907 debugstr_w(servername), level, buffer, parm_err);
908
910 {
911 status = NetrWkstaSetInfo(servername,
912 level,
914 parm_err);
915 }
917 {
919 }
921
922 return status;
923}
924
925
927WINAPI
929 _In_opt_ LPWSTR servername,
932 _Out_ LPDWORD parm_err)
933{
935
936 TRACE("NetWkstaTransportAdd(%s, %d, %p, %p)\n", debugstr_w(servername),
937 level, buf, parm_err);
938
940 {
941 status = NetrWkstaTransportAdd(servername,
942 level,
944 parm_err);
945 }
947 {
949 }
951
952 return status;
953}
954
955
957WINAPI
959 _In_opt_ LPWSTR servername,
960 _In_ LPWSTR transportname,
961 _In_ DWORD ucond)
962{
964
965 TRACE("NetWkstaTransportDel(%s, %s, %d)\n", debugstr_w(servername),
966 debugstr_w(transportname), ucond);
967
969 {
970 status = NetrWkstaTransportDel(servername,
971 transportname,
972 ucond);
973 }
975 {
977 }
979
980 return status;
981}
982
983
984#if 0
986WINAPI
988 _In_opt_ LPWSTR servername,
991 _In_ DWORD prefmaxlen,
992 _Out_ LPDWORD entriesread,
993 _Out_ LPDWORD totalentries,
994 _Inout_ LPDWORD resumehandle)
995{
996 WKSTA_TRANSPORT_ENUM_STRUCT TransportEnumInfo;
999
1000 TRACE("NetWkstaTransportEnum(%s, %d, %p, %d, %p, %p, %p)\n", debugstr_w(servername),
1001 level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle);
1002
1003 TransportEnumInfo.Level = level;
1004 switch (level)
1005 {
1006 case 0:
1007 TransportEnumInfo.WkstaTransportInfo.Level0 = &Container0;
1008 Container0.EntriesRead = 0;
1009 Container0.Buffer = NULL;
1010 break;
1011
1012 default:
1014 }
1015
1017 {
1018 status = NetrWkstaTransportEnum(servername,
1019 &TransportEnumInfo,
1020 prefmaxlen,
1021 totalentries,
1022 resumehandle);
1024 {
1025 switch (level)
1026 {
1027 case 0:
1028 *bufptr = (LPBYTE)TransportEnumInfo.WkstaTransportInfo.Level0->Buffer;
1029 *entriesread = TransportEnumInfo.WkstaTransportInfo.Level0->EntriesRead;
1030 break;
1031 }
1032 }
1033 }
1035 {
1037 }
1039
1040 return status;
1041}
1042#endif
1043
1044
1046WINAPI
1048 _In_ LPWSTR servername,
1051 _In_ DWORD prefmaxlen,
1052 _Out_ LPDWORD entriesread,
1053 _Out_ LPDWORD totalentries,
1054 _Inout_ LPDWORD resumehandle)
1055{
1056 WKSTA_USER_ENUM_STRUCT UserEnumInfo;
1057// WKSTA_USER_INFO_0_CONTAINER Container0;
1058// WKSTA_USER_INFO_1_CONTAINER Container1;
1060
1061 TRACE("NetWkstaUserEnum(%s, %d, %p, %d, %p, %p, %p)\n", debugstr_w(servername),
1062 level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle);
1063
1064 UserEnumInfo.Level = level;
1065 switch (level)
1066 {
1067 case 0:
1068// UserEnumInfo.WkstaUserInfo.Level0 = &Container0;
1069// Container0.EntriesRead = 0;
1070// Container0.Buffer = NULL;
1071 UserEnumInfo.WkstaUserInfo.Level0.EntriesRead = 0;
1072 UserEnumInfo.WkstaUserInfo.Level0.Buffer = NULL;
1073 break;
1074
1075 case 1:
1076// UserEnumInfo.WkstaUserInfo.Level1 = &Container1;
1077// Container1.EntriesRead = 0;
1078// Container1.Buffer = NULL;
1079 UserEnumInfo.WkstaUserInfo.Level1.EntriesRead = 0;
1080 UserEnumInfo.WkstaUserInfo.Level1.Buffer = NULL;
1081 break;
1082
1083 default:
1085 }
1086
1088 {
1089 status = NetrWkstaUserEnum(servername,
1090 &UserEnumInfo,
1091 prefmaxlen,
1092 totalentries,
1093 resumehandle);
1095 {
1096 switch (level)
1097 {
1098 case 0:
1099// *bufptr = (LPBYTE)UserEnumInfo.WkstaUserInfo.Level0->Buffer;
1100// *entriesread = UserEnumInfo.WkstaUserInfo.Level0->EntriesRead;
1101 *bufptr = (LPBYTE)UserEnumInfo.WkstaUserInfo.Level0.Buffer;
1102 *entriesread = UserEnumInfo.WkstaUserInfo.Level0.EntriesRead;
1103 break;
1104
1105 case 1:
1106// *bufptr = (LPBYTE)UserEnumInfo.WkstaUserInfo.Level1->Buffer;
1107// *entriesread = UserEnumInfo.WkstaUserInfo.Level1->EntriesRead;
1108 *bufptr = (LPBYTE)UserEnumInfo.WkstaUserInfo.Level1.Buffer;
1109 *entriesread = UserEnumInfo.WkstaUserInfo.Level1.EntriesRead;
1110 break;
1111 }
1112 }
1113 }
1115 {
1117 }
1119
1120 return status;
1121}
1122
1123
1125WINAPI
1130{
1132
1133 TRACE("NetWkstaUserGetInfo(%s, %d, %p)\n",
1135
1136 if (reserved != NULL || bufptr == NULL)
1138
1139 *bufptr = NULL;
1140
1142 {
1144 level,
1146 }
1148 {
1150 }
1152
1153 return status;
1154}
1155
1156
1158WINAPI
1162 _In_ LPBYTE buf,
1163 _Out_ LPDWORD parm_err)
1164{
1166
1167 TRACE("NetWkstaSetInfo(%s, %d, %p, %p)\n",
1168 debugstr_w(reserved), level, buf, parm_err);
1169
1170 if (reserved != NULL)
1172
1174 {
1176 level,
1178 parm_err);
1179 }
1181 {
1183 }
1185
1186 return status;
1187}
1188
1189/* EOF */
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 NameType
Definition: acpixf.h:658
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
unsigned long __stdcall NetrUseDel(WKSSVC_IMPERSONATE_HANDLE ServerName, wchar_t *UseName, unsigned long ForceLevel)
Definition: rpcserver.c:970
unsigned long __stdcall NetrUseAdd(WKSSVC_IMPERSONATE_HANDLE ServerName, unsigned long Level, LPUSE_INFO InfoStruct, unsigned long *ErrorParameter)
Definition: rpcserver.c:942
unsigned long __stdcall NetrWkstaGetInfo(_In_ WKSSVC_IDENTIFY_HANDLE ServerName, _In_ unsigned long Level, _Out_ LPWKSTA_INFO WkstaInfo)
Definition: rpcserver.c:132
unsigned long __stdcall NetrWkstaTransportAdd(WKSSVC_IDENTIFY_HANDLE ServerName, unsigned long Level, LPWKSTA_TRANSPORT_INFO_0 TransportInfo, unsigned long *ErrorParameter)
Definition: rpcserver.c:915
unsigned long __stdcall NetrGetJoinInformation(WKSSVC_IMPERSONATE_HANDLE ServerName, wchar_t **NameBuffer, PNETSETUP_JOIN_STATUS BufferType)
Definition: rpcserver.c:1124
unsigned long __stdcall NetrRemoveAlternateComputerName(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *AlternateName, wchar_t *DomainAccount, PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword, unsigned long Reserved)
Definition: rpcserver.c:1268
unsigned long __stdcall NetrRenameMachineInDomain2(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *MachineName, wchar_t *AccountName, PJOINPR_ENCRYPTED_USER_PASSWORD Password, unsigned long Options)
Definition: rpcserver.c:1203
unsigned long __stdcall NetrWkstaTransportEnum(WKSSVC_IDENTIFY_HANDLE ServerName, LPWKSTA_TRANSPORT_ENUM_STRUCT TransportInfo, unsigned long PreferredMaximumLength, unsigned long *TotalEntries, unsigned long *ResumeHandle)
Definition: rpcserver.c:900
unsigned long __stdcall NetrWkstaUserEnum(WKSSVC_IDENTIFY_HANDLE ServerName, LPWKSTA_USER_ENUM_STRUCT UserInfo, unsigned long PreferredMaximumLength, unsigned long *TotalEntries, unsigned long *ResumeHandle)
Definition: rpcserver.c:446
unsigned long __stdcall NetrGetJoinableOUs2(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *DomainNameParam, wchar_t *AccountName, PJOINPR_ENCRYPTED_USER_PASSWORD Password, unsigned long *OUCount, wchar_t ***OUs)
Definition: rpcserver.c:1235
unsigned long __stdcall NetrValidateName2(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *NameToValidate, wchar_t *AccountName, PJOINPR_ENCRYPTED_USER_PASSWORD Password, NETSETUP_NAME_TYPE NameType)
Definition: rpcserver.c:1219
unsigned long __stdcall NetrWkstaSetInfo(WKSSVC_IDENTIFY_HANDLE ServerName, unsigned long Level, LPWKSTA_INFO WkstaInfo, unsigned long *ErrorParameter)
Definition: rpcserver.c:321
unsigned long __stdcall NetrEnumerateComputerNames(WKSSVC_IMPERSONATE_HANDLE ServerName, NET_COMPUTER_NAME_TYPE NameType, unsigned long Reserved, PNET_COMPUTER_NAME_ARRAY *ComputerNames)
Definition: rpcserver.c:1300
unsigned long __stdcall NetrWkstaTransportDel(WKSSVC_IDENTIFY_HANDLE ServerName, wchar_t *TransportName, unsigned long ForceLevel)
Definition: rpcserver.c:929
unsigned long __stdcall NetrSetPrimaryComputerName(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *PrimaryName, wchar_t *DomainAccount, PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword, unsigned long Reserved)
Definition: rpcserver.c:1284
unsigned long __stdcall NetrWkstaUserSetInfo(WKSSVC_IDENTIFY_HANDLE Unused, unsigned long Level, LPWKSTA_USER_INFO UserInfo, unsigned long *ErrorParameter)
Definition: rpcserver.c:886
unsigned long __stdcall NetrUnjoinDomain2(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *AccountName, PJOINPR_ENCRYPTED_USER_PASSWORD Password, unsigned long Options)
Definition: rpcserver.c:1188
unsigned long __stdcall NetrAddAlternateComputerName(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *AlternateName, wchar_t *DomainAccount, PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword, unsigned long Reserved)
Definition: rpcserver.c:1252
unsigned long __stdcall NetrJoinDomain2(handle_t RpcBindingHandle, wchar_t *ServerName, wchar_t *DomainNameParam, wchar_t *MachineAccountOU, wchar_t *AccountName, PJOINPR_ENCRYPTED_USER_PASSWORD Password, unsigned long Options)
Definition: rpcserver.c:1153
unsigned long __stdcall NetrUseEnum(WKSSVC_IDENTIFY_HANDLE ServerName, LPUSE_ENUM_STRUCT InfoStruct, unsigned long PreferredMaximumLength, unsigned long *TotalEntries, unsigned long *ResumeHandle)
Definition: rpcserver.c:983
unsigned long __stdcall NetrUseGetInfo(WKSSVC_IMPERSONATE_HANDLE ServerName, wchar_t *UseName, unsigned long Level, LPUSE_INFO InfoStruct)
Definition: rpcserver.c:956
unsigned long __stdcall NetrWkstaUserGetInfo(WKSSVC_IDENTIFY_HANDLE Unused, unsigned long Level, LPWKSTA_USER_INFO UserInfo)
Definition: rpcserver.c:696
#define FIXME(fmt,...)
Definition: precomp.h:53
#define ERR(fmt,...)
Definition: precomp.h:57
handle_t hBinding
Definition: ctx_c.c:54
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define BufferSize
Definition: mmc.h:75
#define NULL
Definition: types.h:112
#define GetProcessHeap()
Definition: compat.h:736
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
Definition: apibuf.c:28
NET_API_STATUS WINAPI NetpNtStatusToApiStatus(_In_ NTSTATUS Status)
Definition: misc.c:289
NET_API_STATUS WINAPI NetWkstaTransportEnum(LMSTR ServerName, DWORD level, PBYTE *pbuf, DWORD prefmaxlen, LPDWORD read_entries, PDWORD total_entries, PDWORD hresume)
Definition: wksta.c:221
#define L(x)
Definition: resources.c:13
r reserved
Definition: btrfs.c:3006
unsigned long DWORD
Definition: ntddk_ex.h:95
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
Definition: fsrtlfuncs.h:898
GLint level
Definition: gl.h:1546
GLuint buffer
Definition: glext.h:5915
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLsizei len
Definition: glext.h:6722
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define debugstr_w
Definition: kernel32.h:32
#define NERR_Success
Definition: lmerr.h:5
enum _NETSETUP_JOIN_STATUS * PNETSETUP_JOIN_STATUS
#define ZeroMemory
Definition: minwinbase.h:31
#define CopyMemory
Definition: minwinbase.h:29
static PVOID ptr
Definition: dispmode.c:27
static LPSTR pName
Definition: security.c:86
DWORD NET_API_STATUS
Definition: ms-dtyp.idl:91
WCHAR * LMSTR
Definition: ms-dtyp.idl:119
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
short WCHAR
Definition: pedump.c:58
DWORD * PDWORD
Definition: pedump.c:68
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:862
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
Definition: rpc_binding.c:493
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:769
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
Definition: rpcrt4_main.c:771
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:181
#define RpcEndExcept
Definition: rpc.h:123
#define midl_user_free
Definition: rpc.h:41
#define __RPC_FAR
Definition: rpc.h:52
#define RpcTryExcept
Definition: rpc.h:121
#define RpcExcept(expr)
Definition: rpc.h:122
long RPC_STATUS
Definition: rpc.h:48
#define __RPC_USER
Definition: rpc.h:61
#define RpcExceptionCode()
Definition: rpc.h:127
#define midl_user_allocate
Definition: rpc.h:40
static LPSTR lpNameBuffer
Definition: secur32.c:50
#define TRACE(s)
Definition: solgame.cpp:4
static void Server(int port)
Definition: srltest.c:69
unsigned long EntryCount
Definition: wkssvc.idl:357
PUNICODE_STRING ComputerNames
Definition: wkssvc.idl:358
union _USE_ENUM_STRUCT::_USE_ENUM_UNION UseInfo
unsigned long EntriesRead
Definition: wkssvc.idl:254
LPUSE_INFO_0 Buffer
Definition: wkssvc.idl:255
unsigned long EntriesRead
Definition: wkssvc.idl:260
LPUSE_INFO_1 Buffer
Definition: wkssvc.idl:261
unsigned long EntriesRead
Definition: wkssvc.idl:266
LPUSE_INFO_2 Buffer
Definition: wkssvc.idl:267
union _WKSTA_TRANSPORT_ENUM_STRUCT::_WKSTA_TRANSPORT_ENUM_UNION WkstaTransportInfo
LPWKSTA_TRANSPORT_INFO_0 Buffer
Definition: wkssvc.idl:319
unsigned long Level
Definition: wkssvc.idl:307
union _WKSTA_USER_ENUM_STRUCT::_WKSTA_USER_ENUM_UNION WkstaUserInfo
unsigned long EntriesRead
Definition: wkssvc.idl:284
LPWKSTA_USER_INFO_0 Buffer
Definition: wkssvc.idl:285
unsigned long EntriesRead
Definition: wkssvc.idl:290
LPWKSTA_USER_INFO_1 Buffer
Definition: wkssvc.idl:291
Definition: ps.c:97
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1147
static unsigned int bufptr
Definition: tncon.cpp:77
uint16_t * PWSTR
Definition: typedefs.h:56
const uint16_t * LPCWSTR
Definition: typedefs.h:57
unsigned char * LPBYTE
Definition: typedefs.h:53
uint16_t * LPWSTR
Definition: typedefs.h:56
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t * LPDWORD
Definition: typedefs.h:59
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
LPUSE_INFO_1_CONTAINER Level1
Definition: wkssvc.idl:276
LPUSE_INFO_2_CONTAINER Level2
Definition: wkssvc.idl:277
LPUSE_INFO_0_CONTAINER Level0
Definition: wkssvc.idl:275
LPWKSTA_TRANSPORT_INFO_0_CONTAINER Level0
Definition: wkssvc.idl:327
WKSTA_USER_INFO_0_CONTAINER Level0
Definition: wkssvc.idl:310
WKSTA_USER_INFO_1_CONTAINER Level1
Definition: wkssvc.idl:311
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_In_ LPCSTR lpName
Definition: winbase.h:2519
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define WINAPI
Definition: msvc.h:6
enum _NET_COMPUTER_NAME_TYPE NET_COMPUTER_NAME_TYPE
enum _NETSETUP_NAME_TYPE NETSETUP_NAME_TYPE
wchar_t * WKSSVC_IMPERSONATE_HANDLE
Definition: wkssvc.idl:8
wchar_t * WKSSVC_IDENTIFY_HANDLE
Definition: wkssvc.idl:7
NET_API_STATUS WINAPI NetWkstaTransportAdd(_In_opt_ LPWSTR servername, _In_ DWORD level, _In_ LPBYTE buf, _Out_ LPDWORD parm_err)
Definition: wksta_new.c:928
NET_API_STATUS WINAPI NetSetPrimaryComputerName(_In_opt_ LPCWSTR Server, _In_ LPCWSTR PrimaryName, _In_opt_ LPCWSTR DomainAccount, _In_opt_ LPCWSTR DomainAccountPassword, _In_ ULONG Reserved)
Definition: wksta_new.c:550
NET_API_STATUS WINAPI NetRemoveAlternateComputerName(_In_opt_ LPCWSTR Server, _In_ LPCWSTR AlternateName, _In_opt_ LPCWSTR DomainAccount, _In_opt_ LPCWSTR DomainAccountPassword, _In_ ULONG Reserved)
Definition: wksta_new.c:454
NET_API_STATUS WINAPI NetWkstaGetInfo(_In_ LPWSTR servername, _In_ DWORD level, _Out_ LPBYTE *bufptr)
Definition: wksta_new.c:865
NET_API_STATUS WINAPI NetUnjoinDomain(_In_opt_ LPCWSTR lpServer, _In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpPassword, _In_ DWORD fUnjoinOptions)
Definition: wksta_new.c:598
NET_API_STATUS WINAPI NetWkstaUserGetInfo(_In_ LPWSTR reserved, _In_ DWORD level, _Out_ LPBYTE *bufptr)
Definition: wksta_new.c:1126
NET_API_STATUS WINAPI NetUseAdd(_In_ LMSTR UncServerName, _In_ DWORD Level, _In_ LPBYTE Buf, _Out_ LPDWORD ParmError)
Definition: wksta_new.c:644
NET_API_STATUS WINAPI NetUseDel(_In_ LMSTR UncServerName, _In_ LMSTR UseName, _In_ DWORD ForceCond)
Definition: wksta_new.c:674
handle_t __RPC_USER WKSSVC_IDENTIFY_HANDLE_bind(WKSSVC_IDENTIFY_HANDLE pszSystemName)
Definition: wksta_new.c:32
NET_API_STATUS WINAPI NetEnumerateComputerNames(_In_opt_ LPCWSTR Server, _In_ NET_COMPUTER_NAME_TYPE NameType, _In_ ULONG Reserved, _Out_ PDWORD EntryCount, _Out_ LPWSTR **ComputerNames)
Definition: wksta_new.c:255
NET_API_STATUS NetpBind(LPCWSTR pszServerName, handle_t *pBindingHandle)
Definition: wksta_new.c:142
NET_API_STATUS WINAPI NetGetJoinInformation(_In_ LPCWSTR lpServer, _Out_ LPWSTR *lpNameBuffer, _Out_ PNETSETUP_JOIN_STATUS BufferType)
Definition: wksta_new.c:317
NET_API_STATUS WINAPI NetAddAlternateComputerName(_In_opt_ LPCWSTR Server, _In_ LPCWSTR AlternateName, _In_opt_ LPCWSTR DomainAccount, _In_opt_ LPCWSTR DomainAccountPassword, _In_ ULONG Reserved)
Definition: wksta_new.c:207
NET_API_STATUS WINAPI NetGetJoinableOUs(_In_opt_ LPCWSTR lpServer, _In_ LPCWSTR lpDomain, _In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpPassword, _Out_ DWORD *OUCount, _Out_ LPWSTR **OUs)
Definition: wksta_new.c:352
NET_API_STATUS WINAPI NetWkstaSetInfo(_In_ LPWSTR servername, _In_ DWORD level, _In_ LPBYTE buffer, _Out_ LPDWORD parm_err)
Definition: wksta_new.c:898
NET_API_STATUS WINAPI NetWkstaTransportDel(_In_opt_ LPWSTR servername, _In_ LPWSTR transportname, _In_ DWORD ucond)
Definition: wksta_new.c:958
handle_t __RPC_USER WKSSVC_IMPERSONATE_HANDLE_bind(WKSSVC_IMPERSONATE_HANDLE pszSystemName)
Definition: wksta_new.c:87
NET_API_STATUS NetpUnbind(handle_t BindingHandle)
Definition: wksta_new.c:187
NET_API_STATUS WINAPI NetUseEnum(_In_ LMSTR UncServerName, _In_ DWORD Level, _Out_ LPBYTE *BufPtr, _In_ DWORD PreferedMaximumSize, _Out_ LPDWORD EntriesRead, _Out_ LPDWORD TotalEntries, _Inout_ LPDWORD ResumeHandle)
Definition: wksta_new.c:702
NET_API_STATUS WINAPI NetWkstaUserEnum(_In_ LPWSTR servername, _In_ DWORD level, _Out_ LPBYTE *bufptr, _In_ DWORD prefmaxlen, _Out_ LPDWORD entriesread, _Out_ LPDWORD totalentries, _Inout_ LPDWORD resumehandle)
Definition: wksta_new.c:1047
NET_API_STATUS WINAPI NetWkstaUserSetInfo(_In_ LPWSTR reserved, _In_ DWORD level, _In_ LPBYTE buf, _Out_ LPDWORD parm_err)
Definition: wksta_new.c:1159
NET_API_STATUS WINAPI NetJoinDomain(_In_opt_ LPCWSTR lpServer, _In_ LPCWSTR lpDomain, _In_opt_ LPCWSTR lpAccountOU, _In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpPassword, _In_ DWORD fJoinOptions)
Definition: wksta_new.c:402
NET_API_STATUS WINAPI NetValidateName(_In_opt_ LPCWSTR lpServer, _In_ LPCWSTR lpName, _In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpPassword, _In_ NETSETUP_NAME_TYPE NameType)
Definition: wksta_new.c:817
NET_API_STATUS WINAPI NetUseGetInfo(_In_ LMSTR UncServerName, _In_ LMSTR UseName, _In_ DWORD Level, _Out_ LPBYTE *BufPtr)
Definition: wksta_new.c:785
void __RPC_USER WKSSVC_IMPERSONATE_HANDLE_unbind(WKSSVC_IMPERSONATE_HANDLE pszSystemName, handle_t hBinding)
Definition: wksta_new.c:126
void __RPC_USER WKSSVC_IDENTIFY_HANDLE_unbind(WKSSVC_IDENTIFY_HANDLE pszSystemName, handle_t hBinding)
Definition: wksta_new.c:71
NET_API_STATUS WINAPI NetRenameMachineInDomain(_In_opt_ LPCWSTR lpServer, _In_opt_ LPCWSTR lpNewMachineName, _In_opt_ LPCWSTR lpAccount, _In_opt_ LPCWSTR lpPassword, _In_ DWORD fRenameOptions)
Definition: wksta_new.c:502
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:56