1 /*++ 2 3 Copyright (C) Microsoft Corporation. All rights reserved. 4 5 Module Name: 6 7 ioctl.h 8 9 Abstract: 10 11 Functions to handle IOCTLs. 12 13 Author: 14 15 Environment: 16 17 kernel mode only 18 19 Notes: 20 21 22 Revision History: 23 24 --*/ 25 26 #ifndef __IOCTL_H__ 27 #define __IOCTL_H__ 28 29 BOOLEAN 30 RequestDispatchProcessDirectly( 31 _In_ WDFDEVICE Device, 32 _In_ WDFREQUEST Request, 33 _In_ WDF_REQUEST_PARAMETERS RequestParameters 34 ); 35 36 BOOLEAN 37 RequestDispatchToSequentialQueue( 38 _In_ WDFDEVICE Device, 39 _In_ WDFREQUEST Request, 40 _In_ WDF_REQUEST_PARAMETERS RequestParameters 41 ); 42 43 BOOLEAN 44 RequestDispatchSyncWithSequentialQueue( 45 _In_ WDFDEVICE Device, 46 _In_ WDFREQUEST Request, 47 _In_ WDF_REQUEST_PARAMETERS RequestParameters 48 ); 49 50 BOOLEAN 51 RequestDispatchSpecialIoctls( 52 _In_ WDFDEVICE Device, 53 _In_ WDFREQUEST Request, 54 _In_ WDF_REQUEST_PARAMETERS RequestParameters 55 ); 56 57 BOOLEAN 58 RequestDispatchUnknownRequests( 59 _In_ WDFDEVICE Device, 60 _In_ WDFREQUEST Request, 61 _In_ WDF_REQUEST_PARAMETERS RequestParameters 62 ); 63 64 // 65 // I/O Request Handlers 66 // 67 68 // Handlers that are called directly in dispatch routine. 69 70 NTSTATUS 71 RequestHandleGetInquiryData( 72 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 73 _In_ WDFREQUEST Request, 74 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 75 _Out_ size_t * DataLength 76 ); 77 78 NTSTATUS 79 RequestHandleGetMediaTypeEx( 80 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 81 _In_ WDFREQUEST Request, 82 _Out_ size_t * DataLength 83 ); 84 85 NTSTATUS 86 RequestHandleMountQueryUniqueId( 87 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 88 _In_ WDFREQUEST Request, 89 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 90 _Out_ size_t * DataLength 91 ); 92 93 NTSTATUS 94 RequestHandleMountQueryDeviceName( 95 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 96 _In_ WDFREQUEST Request, 97 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 98 _Out_ size_t * DataLength 99 ); 100 101 NTSTATUS 102 RequestHandleMountQuerySuggestedLinkName( 103 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 104 _In_ WDFREQUEST Request, 105 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 106 _Out_ size_t * DataLength 107 ); 108 109 NTSTATUS 110 RequestHandleGetDeviceNumber( 111 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 112 _In_ WDFREQUEST Request, 113 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 114 _Out_ size_t * DataLength 115 ); 116 117 NTSTATUS 118 RequestHandleGetHotPlugInfo( 119 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 120 _In_ WDFREQUEST Request, 121 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 122 _Out_ size_t * DataLength 123 ); 124 125 NTSTATUS 126 RequestHandleSetHotPlugInfo( 127 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 128 _In_ WDFREQUEST Request, 129 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 130 _Out_ size_t * DataLength 131 ); 132 133 _IRQL_requires_max_(APC_LEVEL) 134 NTSTATUS 135 RequestHandleEventNotification( 136 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 137 _In_opt_ WDFREQUEST Request, 138 _In_opt_ PWDF_REQUEST_PARAMETERS RequestParameters, 139 _Out_ size_t * DataLength 140 ); 141 142 // Handlers that are called in RequestProcessSerializedIoctl in a work item. 143 144 _IRQL_requires_max_(APC_LEVEL) 145 NTSTATUS 146 RequestHandleGetDvdRegion( 147 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 148 _In_ WDFREQUEST Request, 149 _Out_ size_t * DataLength 150 ); 151 152 NTSTATUS 153 RequestHandleQueryPropertyRetrieveCachedData( 154 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 155 _In_ WDFREQUEST Request, 156 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 157 _Out_ size_t * DataLength 158 ); 159 160 _IRQL_requires_max_(APC_LEVEL) 161 NTSTATUS 162 RequestHandleReadTOC( 163 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 164 _In_ WDFREQUEST Request, 165 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 166 _Out_ size_t * DataLength 167 ); 168 169 _IRQL_requires_max_(APC_LEVEL) 170 NTSTATUS 171 RequestHandleReadTocEx( 172 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 173 _In_ WDFREQUEST Request, 174 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 175 _Out_ size_t * DataLength 176 ); 177 178 _IRQL_requires_max_(APC_LEVEL) 179 NTSTATUS 180 RequestHandleGetConfiguration( 181 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 182 _In_ WDFREQUEST Request, 183 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 184 _Out_ size_t * DataLength 185 ); 186 187 _IRQL_requires_max_(PASSIVE_LEVEL) 188 NTSTATUS 189 RequestHandleGetDriveGeometry( 190 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 191 _In_ WDFREQUEST Request, 192 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 193 _Out_ size_t * DataLength 194 ); 195 196 _IRQL_requires_max_(APC_LEVEL) 197 NTSTATUS 198 RequestHandleDiskVerify( 199 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 200 _In_ WDFREQUEST Request, 201 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 202 _Out_ size_t * DataLength 203 ); 204 205 _IRQL_requires_max_(APC_LEVEL) 206 NTSTATUS 207 RequestHandleCheckVerify( 208 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 209 _In_ WDFREQUEST Request, 210 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 211 _Out_ size_t * DataLength 212 ); 213 214 _IRQL_requires_max_(APC_LEVEL) 215 NTSTATUS 216 RequestHandleFakePartitionInfo( 217 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 218 _In_ WDFREQUEST Request, 219 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 220 _Out_ size_t * DataLength 221 ); 222 223 _IRQL_requires_max_(PASSIVE_LEVEL) 224 NTSTATUS 225 RequestHandleEjectionControl( 226 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 227 _In_ WDFREQUEST Request, 228 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 229 _Out_ size_t * DataLength 230 ); 231 232 _IRQL_requires_max_(PASSIVE_LEVEL) 233 NTSTATUS 234 RequestHandleLoadEjectMedia( 235 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 236 _In_ WDFREQUEST Request, 237 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 238 _Out_ size_t * DataLength 239 ); 240 241 _IRQL_requires_max_(APC_LEVEL) 242 NTSTATUS 243 RequestHandleMcnControl( 244 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 245 _In_ WDFREQUEST Request, 246 _Out_ size_t * DataLength 247 ); 248 249 _IRQL_requires_max_(PASSIVE_LEVEL) 250 NTSTATUS 251 RequestHandleReserveRelease( 252 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 253 _In_ WDFREQUEST Request, 254 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 255 _Out_ size_t * DataLength 256 ); 257 258 _IRQL_requires_max_(PASSIVE_LEVEL) 259 NTSTATUS 260 RequestHandlePersistentReserve( 261 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 262 _In_ WDFREQUEST Request, 263 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 264 _Out_ size_t * DataLength 265 ); 266 267 #if (NTDDI_VERSION >= NTDDI_WIN8) 268 _IRQL_requires_max_(APC_LEVEL) 269 NTSTATUS 270 RequestHandleAreVolumesReady( 271 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 272 _In_ WDFREQUEST Request, 273 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 274 _Out_ size_t * DataLength 275 ); 276 277 _IRQL_requires_max_(APC_LEVEL) 278 NTSTATUS 279 RequestHandleVolumeOnline( 280 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 281 _In_ WDFREQUEST Request, 282 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 283 _Out_ size_t * DataLength 284 ); 285 #endif 286 287 _IRQL_requires_max_(PASSIVE_LEVEL) 288 NTSTATUS 289 DeviceHandleRawRead( 290 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 291 _In_ WDFREQUEST Request, 292 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 293 _Out_ size_t * DataLength 294 ); 295 296 _IRQL_requires_max_(APC_LEVEL) 297 NTSTATUS 298 DeviceHandlePlayAudioMsf( 299 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 300 _In_ WDFREQUEST Request, 301 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 302 _Out_ size_t * DataLength 303 ); 304 305 _IRQL_requires_max_(APC_LEVEL) 306 NTSTATUS 307 DeviceHandleReadQChannel( 308 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 309 _In_ WDFREQUEST Request, 310 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 311 _Out_ size_t * DataLength 312 ); 313 314 _IRQL_requires_max_(APC_LEVEL) 315 NTSTATUS 316 DeviceHandlePauseAudio( 317 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 318 _In_ WDFREQUEST Request, 319 _Out_ size_t * DataLength 320 ); 321 322 _IRQL_requires_max_(APC_LEVEL) 323 NTSTATUS 324 DeviceHandleResumeAudio( 325 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 326 _In_ WDFREQUEST Request, 327 _Out_ size_t * DataLength 328 ); 329 330 _IRQL_requires_max_(APC_LEVEL) 331 NTSTATUS 332 DeviceHandleSeekAudioMsf( 333 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 334 _In_ WDFREQUEST Request, 335 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 336 _Out_ size_t * DataLength 337 ); 338 339 _IRQL_requires_max_(APC_LEVEL) 340 NTSTATUS 341 DeviceHandleStopAudio( 342 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 343 _In_ WDFREQUEST Request, 344 _Out_ size_t * DataLength 345 ); 346 347 _IRQL_requires_max_(APC_LEVEL) 348 NTSTATUS 349 DeviceHandleGetSetVolume( 350 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 351 _In_ WDFREQUEST Request, 352 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 353 _Out_ size_t * DataLength 354 ); 355 356 _IRQL_requires_max_(APC_LEVEL) 357 NTSTATUS 358 DeviceHandleReadDvdStructure( 359 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 360 _In_ WDFREQUEST Request, 361 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 362 _Out_ size_t * DataLength 363 ); 364 365 _IRQL_requires_max_(APC_LEVEL) 366 NTSTATUS 367 DeviceHandleDvdEndSession( 368 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 369 _In_ WDFREQUEST Request, 370 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 371 _Out_ size_t * DataLength 372 ); 373 374 _IRQL_requires_max_(APC_LEVEL) 375 NTSTATUS 376 DeviceHandleDvdStartSessionReadKey( 377 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 378 _In_ WDFREQUEST Request, 379 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 380 _Out_ size_t * DataLength 381 ); 382 383 _IRQL_requires_max_(APC_LEVEL) 384 NTSTATUS 385 DeviceHandleDvdSendKey( 386 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 387 _In_ WDFREQUEST Request, 388 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 389 _Out_ size_t * DataLength 390 ); 391 392 _IRQL_requires_max_(APC_LEVEL) 393 NTSTATUS 394 DeviceHandleSetReadAhead( 395 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 396 _In_ WDFREQUEST Request, 397 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 398 _Out_ size_t * DataLength 399 ); 400 401 _IRQL_requires_max_(APC_LEVEL) 402 NTSTATUS 403 DeviceHandleSetSpeed( 404 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 405 _In_ WDFREQUEST Request, 406 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 407 _Out_ size_t * DataLength 408 ); 409 410 _IRQL_requires_max_(APC_LEVEL) 411 NTSTATUS 412 DeviceHandleAacsReadMediaKeyBlock( 413 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 414 _In_ WDFREQUEST Request, 415 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 416 _Out_ size_t * DataLength 417 ); 418 419 _IRQL_requires_max_(APC_LEVEL) 420 NTSTATUS 421 DeviceHandleAacsStartSession( 422 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 423 _In_ WDFREQUEST Request, 424 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 425 _Out_ size_t * DataLength 426 ); 427 428 _IRQL_requires_max_(APC_LEVEL) 429 NTSTATUS 430 DeviceHandleAacsEndSession( 431 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 432 _In_ WDFREQUEST Request, 433 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 434 _Out_ size_t * DataLength 435 ); 436 437 _IRQL_requires_max_(APC_LEVEL) 438 NTSTATUS 439 DeviceHandleAacsSendCertificate( 440 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 441 _In_ WDFREQUEST Request, 442 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 443 _Out_ size_t * DataLength 444 ); 445 446 _IRQL_requires_max_(APC_LEVEL) 447 NTSTATUS 448 DeviceHandleAacsGetCertificate( 449 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 450 _In_ WDFREQUEST Request, 451 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 452 _Out_ size_t * DataLength 453 ); 454 455 _IRQL_requires_max_(APC_LEVEL) 456 NTSTATUS 457 DeviceHandleAacsGetChallengeKey( 458 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 459 _In_ WDFREQUEST Request, 460 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 461 _Out_ size_t * DataLength 462 ); 463 464 _IRQL_requires_max_(APC_LEVEL) 465 NTSTATUS 466 DeviceHandleSendChallengeKey( 467 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 468 _In_ WDFREQUEST Request, 469 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 470 _Out_ size_t * DataLength 471 ); 472 473 _IRQL_requires_max_(APC_LEVEL) 474 NTSTATUS 475 DeviceHandleReadVolumeId( 476 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 477 _In_ WDFREQUEST Request, 478 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 479 _Out_ size_t * DataLength 480 ); 481 482 _IRQL_requires_max_(APC_LEVEL) 483 NTSTATUS 484 DeviceHandleAacsReadSerialNumber( 485 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 486 _In_ WDFREQUEST Request, 487 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 488 _Out_ size_t * DataLength 489 ); 490 491 _IRQL_requires_max_(APC_LEVEL) 492 NTSTATUS 493 DeviceHandleAacsReadMediaId( 494 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 495 _In_ WDFREQUEST Request, 496 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 497 _Out_ size_t * DataLength 498 ); 499 500 _IRQL_requires_max_(APC_LEVEL) 501 NTSTATUS 502 DeviceHandleAacsReadBindingNonce( 503 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 504 _In_ WDFREQUEST Request, 505 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 506 _Out_ size_t * DataLength 507 ); 508 509 _IRQL_requires_max_(APC_LEVEL) 510 NTSTATUS 511 DeviceHandleAacsGenerateBindingNonce( 512 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 513 _In_ WDFREQUEST Request, 514 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 515 _Out_ size_t * DataLength 516 ); 517 518 _IRQL_requires_max_(APC_LEVEL) 519 NTSTATUS 520 RequestHandleEnableStreaming( 521 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 522 _In_ WDFREQUEST Request, 523 _Out_ size_t * DataLength 524 ); 525 526 _IRQL_requires_max_(APC_LEVEL) 527 NTSTATUS 528 RequestHandleSendOpcInformation( 529 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 530 _In_ WDFREQUEST Request, 531 _Out_ size_t * DataLength 532 ); 533 534 _IRQL_requires_max_(APC_LEVEL) 535 NTSTATUS 536 RequestHandleGetPerformance( 537 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 538 _In_ WDFREQUEST Request, 539 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 540 _Out_ size_t * DataLength 541 ); 542 543 _IRQL_requires_max_(APC_LEVEL) 544 NTSTATUS 545 RequestHandleMcnSyncFakeIoctl( 546 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 547 _Out_ size_t * DataLength 548 ); 549 550 // Handlers that will be called by Sync process. 551 552 // RequestHandleUnknownIoctl could be called at DISPATCH_LEVEL. 553 NTSTATUS 554 RequestHandleUnknownIoctl( 555 _In_ WDFDEVICE Device, 556 _In_ WDFREQUEST Request 557 ); 558 559 _IRQL_requires_max_(APC_LEVEL) 560 NTSTATUS 561 RequestHandleExclusiveAccessQueryLockState( 562 _In_ WDFDEVICE Device, 563 _In_ WDFREQUEST Request 564 ); 565 566 _IRQL_requires_max_(APC_LEVEL) 567 NTSTATUS 568 RequestHandleExclusiveAccessLockDevice( 569 _In_ WDFDEVICE Device, 570 _In_ WDFREQUEST Request 571 ); 572 573 _IRQL_requires_max_(APC_LEVEL) 574 NTSTATUS 575 RequestHandleExclusiveAccessUnlockDevice( 576 _In_ WDFDEVICE Device, 577 _In_ WDFREQUEST Request 578 ); 579 580 NTSTATUS 581 RequestHandleQueryPropertyDeviceUniqueId( 582 _In_ WDFDEVICE Device, 583 _In_ WDFREQUEST Request 584 ); 585 586 NTSTATUS 587 RequestHandleQueryPropertyWriteCache( 588 _In_ WDFDEVICE Device, 589 _In_ WDFREQUEST Request 590 ); 591 592 _IRQL_requires_max_(APC_LEVEL) 593 NTSTATUS 594 RequestHandleScsiPassThrough( 595 _In_ WDFDEVICE Device, 596 _In_ WDFREQUEST Request 597 ); 598 599 // Read/write handler called possibly at DISPATCH_LEVEL. 600 601 NTSTATUS 602 RequestHandleReadWrite( 603 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 604 _In_ WDFREQUEST Request, 605 _In_ WDF_REQUEST_PARAMETERS RequestParameters 606 ); 607 608 // 609 // I/O Request Validation helpers 610 // 611 612 NTSTATUS 613 RequestValidateRawRead( 614 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 615 _In_ WDFREQUEST Request, 616 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 617 _Out_ size_t * DataLength 618 ); 619 620 NTSTATUS 621 RequestValidateReadTocEx( 622 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 623 _In_ WDFREQUEST Request, 624 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 625 _Out_ size_t * DataLength 626 ); 627 628 NTSTATUS 629 RequestValidateReadToc( 630 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 631 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 632 _Out_ size_t * DataLength 633 ); 634 635 NTSTATUS 636 RequestValidateGetLastSession( 637 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 638 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 639 _Out_ size_t * DataLength 640 ); 641 642 NTSTATUS 643 RequestValidateReadQChannel( 644 _In_ WDFREQUEST Request, 645 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 646 _Out_ size_t * DataLength 647 ); 648 649 NTSTATUS 650 RequestValidateDvdReadStructure( 651 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 652 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 653 _Out_ size_t * DataLength 654 ); 655 656 NTSTATUS 657 RequestValidateDvdStartSession( 658 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 659 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 660 _Out_ size_t * DataLength 661 ); 662 663 NTSTATUS 664 RequestValidateDvdSendKey( 665 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 666 _In_ WDFREQUEST Request, 667 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 668 _Out_ size_t * DataLength 669 ); 670 671 NTSTATUS 672 RequestValidateDvdReadKey( 673 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 674 _In_ WDFREQUEST Request, 675 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 676 _Out_ size_t * DataLength 677 ); 678 679 NTSTATUS 680 RequestValidateGetConfiguration( 681 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 682 _In_ WDFREQUEST Request, 683 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 684 _Out_ size_t * DataLength 685 ); 686 687 NTSTATUS 688 RequestValidateSetSpeed( 689 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 690 _In_ WDFREQUEST Request, 691 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 692 _Out_ size_t * DataLength 693 ); 694 695 NTSTATUS 696 RequestValidateAacsReadMediaKeyBlock( 697 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 698 _In_ WDFREQUEST Request, 699 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 700 _Out_ size_t * DataLength 701 ); 702 703 NTSTATUS 704 RequestValidateAacsStartSession( 705 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 706 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 707 _Out_ size_t * DataLength 708 ); 709 710 NTSTATUS 711 RequestValidateAacsSendCertificate( 712 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 713 _In_ WDFREQUEST Request, 714 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 715 _Out_ size_t * DataLength 716 ); 717 718 NTSTATUS 719 RequestValidateAacsGetCertificate( 720 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 721 _In_ WDFREQUEST Request, 722 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 723 _Out_ size_t * DataLength 724 ); 725 726 NTSTATUS 727 RequestValidateAacsGetChallengeKey( 728 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 729 _In_ WDFREQUEST Request, 730 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 731 _Out_ size_t * DataLength 732 ); 733 734 NTSTATUS 735 RequestValidateAacsSendChallengeKey( 736 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 737 _In_ WDFREQUEST Request, 738 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 739 _Out_ size_t * DataLength 740 ); 741 742 NTSTATUS 743 RequestValidateAacsReadVolumeId( 744 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 745 _In_ WDFREQUEST Request, 746 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 747 _Out_ size_t * DataLength 748 ); 749 750 NTSTATUS 751 RequestValidateAacsReadSerialNumber( 752 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 753 _In_ WDFREQUEST Request, 754 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 755 _Out_ size_t * DataLength 756 ); 757 758 NTSTATUS 759 RequestValidateAacsReadMediaId( 760 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 761 _In_ WDFREQUEST Request, 762 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 763 _Out_ size_t * DataLength 764 ); 765 766 NTSTATUS 767 RequestValidateAacsBindingNonce( 768 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 769 _In_ WDFREQUEST Request, 770 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 771 _Out_ size_t * DataLength 772 ); 773 774 NTSTATUS 775 RequestValidateExclusiveAccess( 776 _In_ WDFREQUEST Request, 777 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 778 _Out_ size_t * DataLength 779 ); 780 781 NTSTATUS 782 RequestValidateEnableStreaming( 783 _In_ WDFREQUEST Request, 784 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 785 _Out_ size_t * DataLength 786 ); 787 788 NTSTATUS 789 RequestValidateSendOpcInformation( 790 _In_ WDFREQUEST Request, 791 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 792 _Out_ size_t * DataLength 793 ); 794 795 NTSTATUS 796 RequestValidateGetPerformance( 797 _In_ WDFREQUEST Request, 798 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 799 _Out_ size_t * DataLength 800 ); 801 802 BOOLEAN 803 RequestIsRealtimeStreaming( 804 _In_ WDFREQUEST Request, 805 _In_ BOOLEAN IsReadRequest 806 ); 807 808 NTSTATUS 809 RequestValidateReadWrite( 810 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 811 _In_ WDFREQUEST Request, 812 _In_ WDF_REQUEST_PARAMETERS RequestParameters 813 ); 814 815 NTSTATUS 816 RequestValidatePersistentReserve( 817 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 818 _In_ WDFREQUEST Request, 819 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 820 _Out_ size_t * DataLength 821 ); 822 823 NTSTATUS 824 RequestValidateDvdEndSession( 825 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 826 _In_ WDFREQUEST Request, 827 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 828 _Out_ size_t * DataLength 829 ); 830 831 NTSTATUS 832 RequestValidateAacsEndSession( 833 _In_ PCDROM_DEVICE_EXTENSION DeviceExtension, 834 _In_ WDFREQUEST Request, 835 _In_ WDF_REQUEST_PARAMETERS RequestParameters, 836 _Out_ size_t * DataLength 837 ); 838 839 840 // 841 // completion routines 842 // 843 844 845 846 847 #endif // __IOCTL_H__ 848